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]

dict

#循环列表和字典中 不能删除键值对 否则报错

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)
View Code

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)
View Code

 

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)

 

posted @ 2022-02-14 10:08  TATIT  阅读(39)  评论(0)    收藏  举报