设为首页 收藏本站
查看: 1168|回复: 0

[经验分享] python--数据结构

[复制链接]

尚未签到

发表于 2017-4-24 11:00:34 | 显示全部楼层 |阅读模式
数据结构:学列类型(列表,元组,字符串),集合(set),映射类型(字典)


列表
myList=[‘as’,123,‘dfg’]          #定义
myList.append(‘ddd’)               #添加
for item in myList:                    #遍历
print(item)

myList.sort()          #排序
len(myList)             #计算长度
del myList[0]          #删除

堆栈:            myList.pop()

元组
zoo = (‘aa’, ‘bb’)         #小括号可以省略
len(zoo)=2                   #元组长度2
newzoo=’cc’,zoo
len(newzoo)=2                #长度还是2            ‘cc’,(‘aa’, ‘bb’)
newzoo[1][1]=’bb’           #访问

字典
dic={‘key1’:’value1’,
‘key2’:’value2’,
‘key3’:’value3’
}
del dic[‘key1’]                         #删除
for key,value in dic.items():           #遍历
print(key,value)
dic[‘key4’]=’value4’             #添加
dic.has_key(‘keyName’)           #是否含有该key

集合
bri=set([‘aa’,’bb’])                      #定义
‘aa’in bri=True                               #是否含有该元素
bric=bri.copy()                                  #复制
bric.add(‘cc’)                                 #添加
bric.issuperset(bri)=True                 #子集判断 / 包含于判断
bri.remove(‘bb’)                               #删除元素
bric & bir={‘aa’}  #bri.intersection(bric)={‘aa’}        #求交集

引用
shopList=[‘a’,’b’,’c’]
myList=shopList                                #引用
del shopList[0]                                          #删除
print(shopList)=print(myList)=[‘b’,’c’]         #结果一致,因为是引用

myList=shopList[:]                              #以全切片新建一个拷贝
del shopList[0]                                          #删除
print(shopList) != print(myList)           #不相等,因为指向不同的对象

字符串
name=’abcd’
name.startswith(‘ab’)
name.find(‘bc’) != -1
delimiter=’_*_’
list=[‘1’,’2’,’3’]
print(delimiter.join(list))=1_*_2_*_3

reverse=name[::-1]=’dcba’ #反转字符串, 列表也可以

类-OOP
##每个函数定义时,第一个形参必须为self

class Persion:
num=0                         #类变量 每个对象共享
def __init__(self, name):   #初始化函数
self.name = name
def sayHi(self):              #自定义函数
print(‘my name is ’,self.name)

p = Person(‘lucy’)
p.sayHi()
>>my name is lucy

##python中所有类成员都为public
除了双下划线开头的:     __nameXXX,为private
惯例:单下划线开头的:  _nameXXX,约定为private,但其实是public

文件操作
f = open(‘open.txt’,’w’)        #写模式打开文件
f.write(‘aaaaa’)                       #写文件
f.close()                                   #关闭文件

f=open(‘open.txt’)                  #默认读模式
whlie True:
line=f.readline()
if len(line) == 0:                #长度为0代表EOF
break
print(line,end=’’)
f.close()

with open(‘open.txt’) as f:
for line in f:
print(line,end=’’)

lambda 表达式             #返回新的函数对象
def make_repeater(n):
return lambda s : s*n

twice = make_repeater(2)
print(twice(‘word’))
print(twice(5))
>>wordword
>>10

列表解析
list=[2,3,4]
newlist=[2*i  for i  in  list if i > 2]
print(newlist)
>> 6, 8

函数接收元组+列表
def function_name(arg1, *args):
for i in args:
print(i)

def function_name(arg1, **args):
for key, value in args.items():
print(key, value)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-368563-1-1.html 上篇帖子: python字典排序 下篇帖子: 文件切割 python
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表