本文主要是介绍python自学成才之路 字典详细用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 字典介绍
- 遍历字典
- 1.遍历字典的键
- 2.遍历字典上的值
- 3.遍历键和值
- 字典嵌套
- 1.字典列表
- 2.字典中嵌套列表和字典
字典介绍
字典使用{}表示,内部是一个个键值对,类似于java中的map,但是java中的map有泛型做约束,而python字典则没有。字典的键必须是可hash的,像字符串和整形是可hash,但是如果使用列表或者字典作为键则会报键不能hash异常,如下所示
listtest = ['ds','ds']
userInfo[listtest] = 'sds'Traceback (most recent call last):File "D:/pythonbase/dict/dicBase.py", line 19, in <module>userInfo[listtest] = 'sds'
TypeError: unhashable type: 'list'
字典的键没有强制要求类型必须一致,这在java中是不允许的,但是python中键类型可以不一致,如果在字典中使用不同类型的键,代码不会报错,但是一遍不会这样做,而且不同类型的键在后续操作中容易出问题,所以最好不要使用不同类型的键。
# 不建议使用不同类型的键
userinfo = {}
userinfo[1] = 'hello'
userinfo['2'] = 'world'
print(userinfo)
输出:
{1: 'hello', '2': 'world'}
在字典中使用不同类型的值比较常见,比如定义一个userInfo的字典用来表示用户信息,其中键全是字符串类型,值有字符串类型,也有整形,还有字典类型和列表类型。
userInfo = {}
userInfo['name'] = 'Peter'
userInfo['id'] = 1121021
userInfo['detail'] = {'addr':'new york','age':12,'tel':'21232221021'}
userInfo['friend'] = ['Jane','Bob','Kate']
print(userInfo)
输出:
{'name': 'Peter', 'id': 1121021, 'detail': {'addr': 'new york', 'age': 12, 'tel': '21232221021'}, 'friend': ['Jane', 'Bob', 'Kate']}
在定义一个字典时,可以在定义的时候做初始化,上面的userInfo也可以像下面这样定义:
userInfo = {'name': 'Peter', 'id': 1121021, 'detail': {'addr': 'new york', 'age': 12, 'tel': '21232221021'},'friend': ['Jane', 'Bob', 'Kate']}
遍历字典
1.遍历字典的键
通过for循环遍历字典时,默认是遍历所有的键
userInfo = {'100':'peter','101':'bob','103':'david','104':'jane','105':'kate','106':'jack'}
for key in userInfo:print(key)
也可以使用keys()方法遍历所有的键
for key in userInfo.keys():print(key)
在遍历键时还可以对键做排序操作,但是前提是键的类型都是一致的,否则会报错
for key in sorted(userInfo.keys()):print(key)
2.遍历字典上的值
通过values()方法来遍历所有的值
for value in userInfo.values():print(value)
在遍历值得时候也可以对值做排序操作,但是值得类型必须一致,否则会报错
for value in sorted(userInfo.values()):print(value)
直接遍历值的时候可能会出现很多重复的值,可以使用set来对值做去重处理,前提是值的类型是一致的。
for value in set(userInfo.values()):print(value)
3.遍历键和值
使用items()方法可以同时遍历键和值
for k,v in userInfo.items():print('key = ' + k + ', value = ' + v)
字典嵌套
1.字典列表
列表的元素是字典
userInfos = []
userInfos.append({'name':'Peter','age':12})
userInfos.append({'name':'Jack','age':15})
userInfos.append({'name':'Jane','age':14})
userInfos.append({'name':'Mike','age':13})
print(userInfos)
2.字典中嵌套列表和字典
在字典中同时嵌套字典和列表,比如下面用字典来表示用户信息,第一层是字典,字典里面的兴趣爱好又是列表。
userInfo = {'peter':{'id':'1234','age':12,'tel':'172313133','like':['play guitar','sing','swim']},'bob':{'id':'1235','age':14,'tel':'17232333','like':['play basketball','sing','dance']}
}
print(userInfo)
这篇关于python自学成才之路 字典详细用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!