小尹学python

导航

Python:字典的功能

# 字典:键值不能重复,如重复,则会被重复项中最后一个覆盖掉,py3.6之后,字典有序,前面版本无序
# 键必须可哈希,值随便

# 获取值
a = {'name':'Jack','age':'18','location':'Canada'}
b = a.get('name')
print(b) # 输出Jack

c = a.get('age',123) # 判断age是否在字典里,如在,则返回age的对应值,否则返回123
print(c) # 输出18

d = {'Jack':18,'Green':28,'Jordan':33}
'''
username = input('please enter your name:')
userage = int(input('please enter your age:')) # 需要加int,如不加,则会被定义成字符串
if u_age == None:
    print('name not exist')
else:
    if userage == u_age:
        print('yes')
    else:
        print('age is wrong!')'''

# 获取所有的键
e = d.keys()
print(e) # 输出dict_keys(['Jack', 'Green', 'Jordan'])

# 获取所有的值
f = d.values()
print(f) # 输出dict_values([18, 28, 33])

# 获取所有的键值
g = d.items()
print(g) # 输出dict_items([('Jack', 18), ('Green', 28), ('Jordan', 33)])

# 获取所有的键值
for key,value in d.items():
    print(key,value) # 输出Jack 18  Green 28  Jordan 33

# 添加键值
d.setdefault('hanmeimei',36) # 如这个键没有在字典里,则添加
print(d) # 输出{'Jack': 18, 'Green': 28, 'Jordan': 33, 'hanmeimei': 36}
d.setdefault('Jack',18)  # 如这个键在字典里,则保持原状
print(d) # 输出{'Jack': 18, 'Green': 28, 'Jordan': 33, 'hanmeimei': 36}
d.setdefault('Jack',48)  # 如这个键在字典里,不管新增的值是多少,都不会改变原有键的值
print(d) # 输出{'Jack': 18, 'Green': 28, 'Jordan': 33, 'hanmeimei': 36}
d['Jim'] = 22 # 如这个键在字典里,则改变原键的值,如不在,则新增键值对
print(d) # 输出{'Jack': 18, 'Green': 28, 'Jordan': 33, 'hanmeimei': 36, 'Jim': 22}

# 更新键值对
d.update({'Jack':48,'Lilei':25}) # 如键在d字典里,则更新它的值,如键不在d字典里,则添加键值对
print(d) # 输出{'Jack': 48, 'Green': 28, 'Jordan': 33, 'hanmeimei': 36, 'Jim': 22, 'Lilei': 25}

# 移除键值对
h = d.pop('Jack')  # 移除相应的键值对,同时返回移除的键值
print(d) # 输出{'Green': 28, 'Jordan': 33, 'hanmeimei': 36, 'Jim': 22, 'Lilei': 25}
print(h) # 输出48

i = d.popitem()
print(i) # 输出('Lilei', 25)
print(d) # 输出{'Green': 28, 'Jordan': 33, 'hanmeimei': 36, 'Jim': 22}

# 求并集
j = {'Jack':28,'Green':30} # 如两个字典有同样的键,则后一个字典里的键值会覆盖前一个字典里的同键的值,如没有,则添加
k = d | j
print(k) # 输出{'Green': 30, 'Jordan': 33, 'hanmeimei': 36, 'Jim': 22, 'Jack': 28}

# 求长度
l = len(k)
print(l) # 输出5

# 判断是否包含
m = 'Jack' in k
n = 'Jack' in k.keys()
# 以上两种方法等效
print(m) # 输出True
print(n) # 输出True
o = 33 in k.values() # 判断值是否包含,则需要加values
print(o) # 输出True
p = ('Jordan',33) in k.items() # 判断键值是否包含在内
print(p) # 输出True

# 类型转换
q = [['1','2'],['3','4'],['5','6']] # 也可以是元组
r = dict(q)
print(r) # 输出{'1': '2', '3': '4', '5': '6'}
s = list(r)
print(s) # 输出['1', '3', '5']
t = list(r.keys())
print(t) # 输出['1', '3', '5']
u = list(r.values())
print(u) # 输出['2', '4', '6']
v = list(r.items())
print(v) # 输出[('1', '2'), ('3', '4'), ('5', '6')]

posted on 2021-09-29 11:37  小尹学python  阅读(162)  评论(0)    收藏  举报