在Python中,字典用花括号{}中的一系列键——值对表示。键-值对是无序的,这意味着你不能通过索引来访问它,必须通过键值来访问、修改和删除。
>>> alien_0={'color':'green','age':5}
>>> print (alien_0['color'])
green
>>> del alien_0['color']
>>> print (alien_0)
{'age': 5}
需要多行来定义字典时,推荐的格式:
在输入左花括号后按回车键,再在下一行缩进四个空格,指定第一个键值对,并在它后面加一个逗号。此后你再次按回车键时,文本编辑器将自动缩进后续键值对,且缩进量与第一个键值对相同。
定义好字典后,在最后一个键值对的下一行添加一个右花括号,并缩进四个空格,使其与字典中的键对齐。另外一种不错的做法是在最后一个键值对后面也加上逗号,为以后在下一行添加键值对做好准备。
alien_0={
'color':'green',
'age':5,
}
较长的print语句可以利用+号分行。
>>> alien_0={
... 'color':'green',
... 'age':5,
... }
>>> print ("Sarah's favorite color is " +
... alien_0['color'].title() +
... '.')
Sarah's favorite color is Green.
遍历字典
方法items()返回键值对列表,可通过for循环访问它们
>>> alien_0={
... 'color':'green',
... 'age':5,
... }
>>> for key, value in alien_0.items():
... print("\nKey: "+key)
... print("Value: "+str(value))
...
Key: color
Value: green
Key: age
Value: 5
此外,还有方法keys()可以获取所有键,方法values()可以获取所有值。
集合(set)类似于列表,但每个元素都是独一无二的。
因为键值是无序的,当你想要以特定顺序遍历字典时,可使用sorted函数来对键进行临时排序;当你需要没有重复元素的列表时,可以调用set()对列表去重复,并返回使用这些元素创建的集合。
>>> favorite_languages = {
... 'jen': 'python',
... 'sarah': 'c',
... 'edward': 'ruby',
... 'phil': 'python',
... }
>>> for name in sorted(favorite_languages.keys()):
... print(name.title() + ", thank you for taking the poll.")
...
Edward, thank you for taking the poll.
Jen, thank you for taking the poll.
Phil, thank you for taking the poll.
Sarah, thank you for taking the poll.
>>> print("The following languages have been mentioned:")
The following languages have been mentioned:
>>> for language in set(favorite_languages.values()):
... print(language.title())
...
Python
C
Ruby
>>> languages=set(favorite_languages.values())
>>> print (languages)
set(['python', 'c', 'ruby'])
嵌套
通过在列表中嵌套字典或列表、字典中嵌套列表或字典等可以找到更简单的问题解决方案。