python day07
基础数据类型汇总补充
bool
什么数据类型转换为bool全是False
#0 ‘’ [] () {} set()-----> False
在循环当中删除某些元素
#IndexError: list assignment index out of range lis = [11,22,33,44,55] for i in range(len(lis)): del lis[i] #IndexError: list assignment index out of range ''' 0 [11, 22, 33, 44, 55] 1 [22, 33, 44, 55] 2 [22, 44, 55] 3 [22, 44] ''' lis = [11,22,33,44,55] for i in range(len(lis)): print(i) print(lis) del lis[i]
#循环列表和字典中 不能删除键值对 否则报错
dic = {'k1':'v1','k2':'v2','a3':'v3'}
for i in dic:
if 'k' in i:
del dic[i]
#将键值中有'k'的键值添加到新的列表中
dic = {'k1':'v1','k2':'v2','a3':'v3'}
for i in dic:
if 'k' in i:
del dic[i]
dic1 = {}
for i in dic:
if 'k' not in i:
dic1.setdefault(i,dic[i])
dic = dic1
print(dic)
l = []
for i in dic:
if 'k' in i:
l.append(i)
for i in l:
del dic[i]
tuple
如果元组里面只有一个元素且不加逗号 那么这个元素是什么类型 就什么类型
tu1 = (1) tu2 = (1,) ''' 1 <class 'int'> (1,) <class 'tuple'> ''' print(tu1, type(tu1)) print(tu2, type(tu2)) ''' [1] <class 'list'> ([1],) <class 'tuple'> ''' tu1 = ([1]) tu2 = ([1],) print(tu1, type(tu1)) print(tu2, type(tu2))
集合set
可变的数据类型
它里面的元素必须是不可变的数据类型
无序 不重复(去重)
set1 = set({1,2,3})
print(set1)
set1 = (1,2,3)
#TypeError: unhashable type: 'list'
#不可哈希 list
set2 = {1,2,3, [2,3], {'name':'alex1'}}
print(set2)
add()
update()
1 set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'} 2 set1.add('kami') 3 #{'ritian', 'alex', 'wusir', 'egon', 'kami', 'barry'} 4 print(set1) 5 6 #update 7 set1.update('abc') 8 #{'b', 'egon', 'a', 'kami', 'barry', 'wusir', 'ritian', 'alex', 'c'} 9 print(set1)
删
pop() 随机删除并返回删除的元素
1 #del 2 #randomly 3 print(set1.pop()) 4 print(set1)
remove()按值去删
1 #KeyError: 'alex' 2 #key在pop中已经被删除了 3 set1.remove('alex')
clear()清空
1 set1.clear() 2 #set() 代表空集合 3 print(set1)
del 删除整个集合
del set1 #NameError: name 'set1' is not defined print(set1)
改 没有改
查
1 #search 2 set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'} 3 for i in set1: 4 print(i)
求集合
1 #交集 2 set1 = {1,2,3,4,5} 3 set2 = {4,5,6,7,8} 4 set3 = set1&set2 5 print(set3) 6 print(set1.intersection(set2)) 7 #并集 8 set1 = {1,2,3,4,5三} 9 set2 = {4,5,6,7,8} 10 set3 = set1|set2 11 print(set3) 12 print(set1.union(set2)) 13 #反交集 14 set1 = {1,2,3,4,5} 15 set2 = {4,5,6,7,8} 16 print(set1^set2) 17 print(set1.symmetric_difference(set2)) 18 #查集 19 set1 = {1,2,3,4,5} 20 set2 = {4,5,6,7,8} 21 print(set1 - set2) 22 print(set1.difference(set2)) 23 #判断是否是子集 24 set1 = {1,2,3} 25 set2 = {1,2,3,4,5,6} 26 print(set1 < set2) 27 print(set1.issubset(set2)) 28 #超集 29 print(set2 > set1) 30 print(set2.isuperset(set1)) 31 32 #将列表中重复元素删除 33 li = [1,2,33,33,2,1,4,5,6,6] 34 li = list(set(li)) 35 print(li)
frozenset()
不可变的数据类型
1 #frozenset({'y', 'b', 'r', 'a'}) <class 'frozenset'> 2 s = frozenset('barry') 3 print(s, type(s)) 4 #可以循环打印 但打印出来是无序的 5 #不能增加 6 for i in s: 7 print(i)

浙公网安备 33010602011771号