302_python_数据类型_dict_set_推导式_生成器
【摘要】 dict set 生成器 推导式
字典类型(dict)
info = { 键:值 , 键:值 , 键:值, 键:值 }
增
info = {"name":"alex","age":18,"size":3} # 映射方式 非dict()
dict() 方法
numbers = dict(x=5, y=0) # 关键字 class dict(**kwarg)
numbers1 = dict({'x': 4, 'y': 5}) #映射方式 #class dict(mapping, **kwarg)
numbers2 = dict([('x', 5), ('y', -5)], z=8) # 关键字+迭代 #class dict(iterable, **kwarg)
删
清空字典:clear(); dict1.clear()
删除指定键值对: del dict['a'](#删除键值对); del dic(#删除字典)
dict1.pop('a') # 弹出键值为a 的key ; 由于字典无序(映射) 不能像list; .pop(1)
改
info["name"] = "bob"
update() #字典中,键是唯一的,如果存在两个一样的键,后者会替代前者
dict5={'b':3,'c':4}
dict6={'a':7,'c':8}
dict5.update(dict6)
print(dict5) #输出:{'b': 3, 'a': 7, 'c': 8}
查
info = {"name":"alex","age":18,"size":3}
v1 = info.get("name")
print(v1) # "alex"
info.keys() # ["name","age","size"]
info.values() # ["alex",18,3]
info.items() # [ ("name","alex"), ("age",18), ("size",3)]
for k,v in info.items():
公共
1 len() 长度 多少个键值对
2 索引
3 in 判断
#索引
info["name"] = "bob"
# 键中是否存在xx
info = {"name":"陈聪","age":18,"size":3}
if 'xx' in info:
pass
4 遍历(其实是遍历所有的key)
info = {"name":"alex","age":18,"size":3}
for item in info:
print(item, type(item)) #name <class 'str'>
print(info[item]) # alex
集合:无序且不重复的元素集合{},
set{}(#创建空集合,a=set{}) 不同元素构成, 集合中的元素必须是不可变的,集合无序,集合像一个无值得字典
v1 = [11,22,33] # [] list()
v2 = (11,22,33) # () tuple()
v3 = { "k1":123, "k2":123 } # {} dict()
v4 = { 11,222,333,44} # set()
增
v1 = {11, 22, 33}
v1.add(44)
删
v1.discard(22)
改
set2={1, 2, 3, 4, 5, 'x'}
set2.update(['a','b'])
print(set2 ) #输出:{1, 2, 3, 4, 5, 'a','b'}
查
v1 = {11, 22, 33}
v2 = {33, 44, 55}
交集
res = v1.intersection(v2)
并集
res = v1.union(v2)
print(res)
result = v1 | v2
print(result)
差集
# res1 = v1 - v2
res1 = v1.difference(v2) # v1有且v2没有的数据
print(res1)
# res2 = v2 - v1
res2 = v2.difference(v1) # v2有且v1没有的数据
print(res2)
公共功能
1 长度 len()
2 切片/索引不支持
3 循环
4 包含
v1 = {11, 22, 33}
for item in v1:
print(item)
if 11 in v1:
pass
else:
pass
推导式&生成器
# 列表推导式
num_list = [ 100 for i in range(100) if i > 7 and i<10 ]
print(num_list) # [100,100]
# 字典推导式
info = { i:123 for i in range(10)}
print(info) #{0: 123, xxxx}
# 集合推导式
data = {i for i in range(10)}
print(data) #{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
# 生成器
data = (i for i in range(10))
print(data, type(data)) # <generator object <genexpr> at 0x000001A5ED732040> <class 'generator'>
for item in data:
print(item)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)