列表元组字典用法
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型。
增:
append() #追加到最后
insert(3,内容) #插入
extend() #将两个列表合并成一个;可迭代,分解成元素添加在末尾
删:
.pop(0) #按照下标删除指定的值并返回
.remove('name') #an元素删除指定的值
clear() #清除列表内的数据
del(name[3]) #删除列表,也可以进行切片删除
改:
L[1] = '2' #也可进行分片赋值
查:
name.index('123') #返回从左边开始匹配的第一个123的索引值
name.count('123') #返回有几个123
sort() #正向排序,反向排序L.sort(reverse=True)
对于Python
内置函数sorted()
,先拿来跟list(列表)中的成员函数list.sort()
进行下对比。在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的。
主要的区别在于,list.sort()
是对已经存在的列表进行操作,进而可以改变进行操作的列表。而内建函数sorted
返回的是一个新的list,而不是在原来的基础上进行的操作.
加号 + 是列表连接运算符,星号 * 是重复操作
元组是另一个数据类型,类似于 List(列表)。
元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
tuple = ( '123','456','789','012')
tuple2 = ('abc','def')
print(tuple[1:3])
print(tuple[1:]) #第一个往后所有的
print(tuple * 2) #重复打印两次
print(tuple +tuple2)
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成
dict = {}
dict['abc'] = 'ABC'
tinydict = {'name':'zcy','age':'22','height':180}
print(dict['abc']) #输出键为abc的值
print(tinydict.keys()) #输出所有键
print(tinydict.values()) #输出所有值
a.setdefault("name",['z','c','y'])
删:
name.pop('name') #删除指定的key
name.popitem() #随机删除一个key
del name['name'] #同pop
name.clear() #清空
改:
dict['1'] = '2' #如果key值存在,则会替换原来的value
dict.update(dict2) #将dict2添加到dict中
查:
dict['key']
dict.get['key'] #有key则取出来,没有则default值
'key' in dict #在里面返回True,没有False
dict.items() #返回一个包含所有键,值 元组的列表
循环打印
for i in a:
print(i,a[i])
for k,v in a.items():
print(k,v)
集合
元素不可改变
天生去重
无序
主要用于去重,关系运算
增:
s.add('hd')
删
s.discard('abc') #删除一个存在的值
s.pop() #随机删除并返回
s.remove('1') #指定删除哪一个
for i in s:
print(i) #循环打印
改
呵呵,改你妹,集合不能改
print(a & b) # 取交集 & interserion
print(a | b) #取并集,所有的合并起来 | union
print(a - b) #取差集,我有你没有 print(b - a) #你有我没有 - difference
print(a ^ b) #对称差集 重复的踢出去 ^ symmetric_difference
a.isdisjoint(b) #判断是否相交
a.issubset(b) #是否子集
a.difference_update(b) #得到值重新赋给a 差集
a.intersection_update(b) #得到值重新赋给a 交集
end = ' ' 把行末的换行符替换为空字符
sys.stdout.write()d和print的区别
sys.stdout.write()输出不会自动换行,没有end,可用转义字符自行控制
sys.stdout.flush()刷新
/n 换行
/r 回车到本行首,可刷新输出
print() 则自动换行
name[::-1] #字符串反转
list.reverse() #列表反转
字符串用法:
name.capitalize() #首字母大写
name.casefold() #字母全部变小写(德之类的) name.lower() #也是变小写(汉英)
name.swapcase() #大写变小写,小写变大写
name.cneter(100,'-') #name放中间,两边-填补
name.count('a'2,8) #统计有多少个a,可以切片
name.endswith('cy') #判断是否以cy结尾,name.startswith('z')是否以什么开始
name.find('c') #找c,找到返回下标,找不到返回-1 name.index('c')
name.isdigit() #判断字符串是否只有数字组成True,False
name.islower() #判断是否小写 name.lower() #全变小写
name.isspace() #检测字符串是否只有空格组成
name.isupper() #检测是否都是大写 name.upper() #全变大写
'-'.join(name) #拼接成字符串,前面是以什么为分隔符
name.ljust(50,'-') #字符串靠左,50个字符,后面填补字符
name.rjust(50,'-') # rjust 字符串靠右
name.strip() #去掉字符串左右的空格 name.rstrip() 去右 name.lstrip() 去左空格
#括号里可以填写字符
name.replace('123','678') #把字符串里面的123改为678,后面有一个count值,可以设置改几次
name.split(',') #字符串变列表,以什么劈开,后面有count值
name.zfill(30) #变成30个字符,不够0补