【Python】字典和结构化数据
字典数据类型
利用键访问对应值
像列表一样,“字典”是许多值的集合。但不像列表的下标,字典的索引可以使用很多不同数据类型,不只是整数。
- 键:字典的索引被称为“键”
- 键-值对:键及其相关联的值称为“键-值”对
字典长下面这个样子↓
myCat={'size'='fat','color'='gray','disposition'='loud'}
- 这是将一个字典变量赋给myCat变量
- 字典的键是’size’、’color’和’disposition’
- 这些键对应的值为’fat’、’gray’和’loud’
可以通过键访问对应的值↓(就像通过下标访问列表对应的值)1
2myCat={'size'='fat','color'='gray','disposition'='loud'}
print(myCat[size])
fat
无法切片
字典的表项是不排序的,所以不能像列表那样切片
in操作符
可以使用in操作符判断前面输入的字符串是否作为键存在于字典中1
2birthday={'Alice':'April 4','Bob':'Dec 12'}
print('Alice' in birthday)
True
字典使用
有三个字典方法
keys()、values()和items()方法
1.keys()返回字典键
t=字典名.keys()
2.values()返回字典值
v=字典名.values()
3.items()返回字典键-值对
i=字典名.items()
与for循环的结合迭代1
2
3spam={'color':'red','age':42}
for k in spam.keys():
print(k)
与in、not in 操作符结合
检查某个键和值是否在字典中1
2spam={'name':'SYolin','gender':'male'}
print('name' in spam.keys())
True
get()方法访问字典中的键
get()方法有两个参数:
字典名.get(要取的键,若键不存在返回的备用值)
有效避免了在取得字典中的键或值之前,还需检查检查是否存在的步骤
setdefault()方法
当需要为字典中的某个键设置一个默认值,当该键没有任何值时使用它
就像达到以下的效果
1 | spam={'name':'Pooka','age':5} |
setdefault()提供了一种方式,在一行中完成这件事,需要传递两个参数
1.第一个参数是要检查的键
2、第二个参数是,如果该键不存在时要设置的值。如果该键存在,第二个参数不会被使用
字典名.setdefault(检查的键,不存在时设置的值)
对上面的代码进行改进↓
1 | spam={'name':'Pooka','age':5} |
black
setdefault()方法是一个很好地快捷方式,可以确保一个键的存在。
漂亮打印
导入pprint模块,就可以使用pprint()和pformat()函数
可以以键-值对成行“漂亮”打印一个字典值
- pprint():打印到屏幕上
- pformat():得到漂亮文本的字符串,而不是打印到屏幕上
使用↓
pprint.pprint(字典名) # 打印到屏幕上
pprint.pformat(字典名) # 得到字符串
print(pprint.pformat(字典名)) # 和第一行代码等价
利用字典统计句子每个字符个数
1 | import pprint |
如果是取得某个字符的个数1
2
3
4
5
6
7
8
9import pprint
message='It was a bright cold day in April, and the clocks were strking thirteen.'
target=input()
count={target:0}
for character in message:
if character in count: # 直接用in操作符检查输入的名字是否作键存在于字典中
count[target]+=1
pprint.pprint(count)