今天为大家介绍的是Python中内置数据结构之一,字典,以下为学习参考代码。
# 机构:家里蹲
# 作者:青灬火
# 时间:2021/7/18 9:14
#字典是Python内置的数据结构之一,与列表一样是一个可变序列
#以键值对的方式存储数据,字典是一个无序的序列
#字典的创建
#最常用方式:使用花括号
scores = {'张三': 100, '李四': 98, '王五': 66}
print(scores) #{'张三': 100, '李四': 98, '王五': 66}
print(type(scores)) #<class 'dict'>
#使用内置函数dict()
stu = dict(name='jact', age=20)
print(stu) #{'name': 'jact', 'age': 20}
#空字典
d = {}
print(d) #{}
#字典中元素的获取
scores = {'张三': 100, '李四': 98, '王五': 66}
print(scores['张三']) #100
#print(scores['陈六']) # KeyError: '陈六'
print(scores.get('张三')) #100
print(scores.get('陈六')) # None
print(scores.get('马奇', 99)) # 99 在查找key不存在时,返回默认值 99
#key的判断 in / not in
scores = {'张三': 100, '李四': 98, '王五': 66}
print('张三' in scores) #True
print('张三' not in scores) #False
print('陈六' in scores) #False
print('陈六' not in scores) #True
#删除操作
del scores['张三']
print(scores) #{'李四': 98, '王五': 66}
#del scores['陈六'] #KeyError: '陈六'
#clear()清空字典
scores.clear()
print(scores) #{}
#字典中添加元素
scores['陈六'] = 96
print(scores) #{'陈六': 96}
#修改字典的元素值
scores['陈六'] = 66
print(scores) #{'陈六': 66}
scores = {'张三': 100, '李四': 98, '王五': 66}
#获取字典视图的三个方法
#1、keys() 获取字典中的所有key
keys = scores.keys()
print(keys) #dict_keys(['张三', '李四', '王五'])
print(type(keys)) #<class 'dict_keys'>
print(list(keys)) #['张三', '李四', '王五']
#遍历keys
for i in scores.keys():
print(i)
#2、values() 获取字典中的所有value
values = scores.values()
print(values) #dict_values([100, 98, 66])
print(type(values)) #<class 'dict_values'>
print(list(values)) #[100, 98, 66]
#遍历values
for i in scores.values():
print(i)
#3、items() 获取字典中的所有key, value对
items = scores.items()
print(items) #dict_items([('张三', 100), ('李四', 98), ('王五', 66)])
print(type(items)) #<class 'dict_items'>
print(list(items)) #[('张三', 100), ('李四', 98), ('王五', 66)]
#遍历items
for i in scores.items():
print(i)
print(i[0])
#遍历字典 scores
for i in scores:
print(i)
print(scores[i])
print(scores.get(i))
'''
字典的特点
字典中的所有元素都是一个key-value对,key不允许重复,value可以重复
字典中的元素是无序的
字典中的key必须是不可变对象 如int, str
字典也可以根据需要动态的伸缩
字典会浪费较大的内存,是一种使用空间换时间的数据结构
'''
d = {'name': '张三', 'name': '李四'}
print(d) #{'name': '李四'}
d = {'name': '张三', 'nikename': '张三'}
print(d) #{'name': '张三', 'nikename': '张三'}
lst = [10, 20, 30]
#d = {lst: '王五'} #TypeError: unhashable type: 'list'
#字典生成式
#内置函数zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表
items = ['Fruits', 'Books', 'Others']
prices = [96, 78, 85]
lst = zip(items, prices)
print(list(lst)) #[('Fruits', 96), ('Books', 78), ('Others', 85)]
dict = {item.upper(): price for item, price in zip(items, prices)}
print(dict) #{'FRUITS': 96, 'BOOKS': 78, 'OTHERS': 85}
print(type(dict)) #<class 'dict'>
prices = [96, 78, 85, 30, 100]
lst = zip(items, prices) #双方元素个数不对等的时候,以少的为准
print(list(lst)) #[('Fruits', 96), ('Books', 78), ('Others', 85)]
dict = {item.upper(): price for item, price in zip(items, prices)}
print(dict) #{'FRUITS': 96, 'BOOKS': 78, 'OTHERS': 85}
扫码关注公众号“JAVA记录册”
该公众号致力于为大家分享工作中会用到一些简单实用的小知识,而不是那些悬在云端的高大上但又感觉空泛的文章,欢迎大家关注,谢谢!
|