Python 一一 Dict和Set

# coding=UTF-8

'''
和list比较,dict有以下几个特点:

查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list相反:

查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。

dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
'''

# 字典的每个键值(key=>value)对用冒号: 分割,每个对之间有,号隔开,用{}包围

# 键必须是唯一的,值可以不唯一
dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

# 访问字典中的值
print("dict['Name']:", dict1['Name'])
print("dict['Age']:", dict1['Age'])

# 修改字典: 像字典添加新内容的方法是增加新的键值对, 修改或删除已有键值对.
dict1['Age'] = 8 # 更新Age
dict1['Sex'] = 'male' # 添加信息

print(dict1['Age'])
print(dict1['Sex'])

# 删除字典元素
del dict1['Name'] # 删除键 'Name'
print(dict1)
# dict1.clear() # 清空字典
# print(dict1)
# del dict # 删除字典
# print(dict1)

# 字典键的特性
# 不允许同一个键出现两次.
# 判断key不存在的错误: 通过in来判断key是否存在
print('DDD' in dict1) #False
# 通过dict提供的get()方法,如果key不存在,可以返回None,或者自己制定的value:
dict1.get('Age') # 在命令行中不显示None
print(dict1)

dict1.pop('Age')
print(dict1)

字典内置函数 & 方法

# 函数
print(len(dict1)) # 2
# 输出字典,打印字符串表示
print(str(dict1)) # {'Sex': 'male', 'Class': 'First'}
# 返回变量类型
print(type(dict1)) # dict

listt = ['A', 'B', 'C']
print(listt)
print(type(listt))

# 方法
# clear() 清空字典	copy() 返回一个字典的浅复制
# key in dict 如果键在dict就返回True 否则就返回False
# items() 以列表返回可遍历的(键-值)数组
# keys() 以列表返回字典中所有的键
# update(dict2) 把字典dict2中的键/值更新到dict中
# values() 以列表返回字典中所有的值

dd = {'name' : 'zy', 'age' : 20, 'sex' : 'male'}
dict2 = {'namee' : 'cy', 'agee' : 22, 'sexx' : 'female'}
print(dd.items())
print(dd.keys())
print(dd.values())
# 将dict2 中的键值对更新到dd字典中
dd.update(dict2)
print(dd)

# 字典支持无限嵌套的
cities = {
	'北京':{
        '朝阳':['国贸','CBD','天阶','我爱我家','链接地产'],
        '海淀':['圆明园','苏州街','中关村','北京大学'],
        '昌平':['沙河','南口','小汤山',],
        '怀柔':['桃花','梅花','大山'],
        '密云':['密云A','密云B','密云C']
    },
    '河北':{
        '石家庄':['石家庄A','石家庄B','石家庄C','石家庄D','石家庄E'],
        '张家口':['张家口A','张家口B','张家口C'],
        '承德':['承德A','承德B','承德C','承德D']
    }
}

for i in cities['北京']:
	print(i + '--')

for i in cities['北京']['怀柔']:
	print(i)

Set

# set和dict类似,元素一组key的集合,但不存储value
# 创建一个set,需要提供一个list座位输入集合
set1 = set([1, 2, 3])
print(set1)
set1.add(4)
print(set1)
set1.remove(3)
print(set1)

# set可以看成无序和无重复元素的集合.
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
print(s1 & s2) # 取交集 [2, 3]
print(s1 | s2) # 取并集 [1, 2, 3, 4]


发布了149 篇原创文章 · 获赞 68 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/m0_37989980/article/details/80229203
今日推荐