43 字典元素的访问
① 字典中的每个元素表示一种映射关系或对应关系,根据提供的 “键” 作为下标可以访问对应的 “值”,如果字典中不存在这个 “键” 会抛出异常。
x = {'age': 20, 'score': [98, 86], 'name': 'Danny', 'sex': 'female'}
print(x['age']) # 指定的“键”存在,返回对应的“值”
# print(x['address']) # 指定的“键”不存在,抛出异常, KeyError: 'address'
为了避免程序运行时引发异常而导致崩溃,在使用下标的方式访问字典元素时,最好配合条件判断或者异常处理结构。
x = {'age': 20, 'score': [98, 86], 'name': 'Danny', 'sex': 'female'}
if 'Age' in x:
print(x['Age'])
else:
print('not exists.')
try:
print(x['address'])
except:
print('Not Exists.')
② 字典对象提供了一个 get() 方法来返回指定 “键” 对应的 “值”,并且允许指定该键不存在时返回特定的 “值”。
x = {'age': 20, 'score': [98, 86], 'name': 'Danny', 'sex': 'female'}
print(x.get('name')) # 如果字典中存在该“键”,则返回对应的值
print(x.get('address', 'not exists')) # 指定的“键”不存在时返回指定的默认值
import string, random
x = string.ascii_letters + string.digits
print(x)
y = ''.join((random.choice(x) for i in range(1000))) # 生成1000个随机字符
z = dict()
for i in y: # 遍历字符串,统计频次
z[i] = z.get(i, 0) + 1
# for k, v in sorted(z.items()): # 查看统计结果
# print(k, ':', v)
print(sorted(z.items()))
x = 'effgggff'
y = {}
for i in x:
y[i] = y.get(i, 0) + 1
print(y)
x = {}
print(x.get('g', 0))
x['g'] = x.get('g', 0) + 1
print(x)
③ 字典对象的 setfault() 方法用于返回指定 “键” 对应的 “值”,如果字典不存在该 “键”,就添加一个新元素并设置该 “键” 对应的 “值”(默认为 None)。
x = {'age': 20, 'score': [98, 86], 'name': 'Danny', 'sex': 'female'}
print(x.setdefault('address', 'moon')) # 增加新元素
print(x)
④ 对字典对象直接进行迭代或者遍历时默认是遍历字典的 “键”,如果需要遍历字典的元素必须使用字典对象的 items() 方法明确说明,如果需要遍历字典的 “值” 则必须使用字典对象的 values() 方法明确说明。当使用 len()、max()、min()、sum()、sorted()、enumerate()、map()、filter() 等内置函数以及成员测试运算符 in 对字典对象进行操作时,也遵循同样的约定。
x = {'age': 20, 'score': [98, 86], 'name': 'Danny', 'sex': 'female'}
for i in x: # 默认遍历字典的键
print(i, end=' ')
print('')
for i in x.items(): # 明确指定遍历字典的元素
print(i, end=' ')
print('')
print(x.items(), type(x.items()))
print(x.keys(), type(x.keys()))
print(x.values(), type(x.values()))
原文地址:https://blog.csdn.net/weixin_45782832/article/details/140854298
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!