字典

Python字典详解

像列表一样,“字典”是许多值的集合。但不像列表的下标,字典的索引可以使用许多不同数据类型,不只是整数。字典的索引被称为“键”,键及其关联的值称为“键-值”对。

字典中的表项是不排序的。所以不能像列表那样切片。

1
2
3
>>> dict={'name':'Tom','age':18,'Color':'white'}
>>> dict['age']
18


keys()、values()和items()方法

▎3个字典的方法:

    keys()         键

    values()       值

    items()        键-值对

这些方法返回的值不是真正的列表,它们不能被修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> dict={'name':'Tom','age':18,'Color':'white'}
>>> for in dict.keys():
...     print(k)
...
Color
name
age
>>> for in dict.values():
...     print(v)
...
white
Tom
18
>>> for k,v in dict.items():
...     print(k,v)
...
Color white
name Tom
age 18


in和not in

利用in和not in操作符可以检查值是否存在于列表中。

1
2
3
4
5
6
7
8
9
>>> dict={'name':'Tom','age':18,'Color':'white'}
>>> 'age' in dict.keys()
True
>>> 'age' in dict      ## 等于“'age' in dict.keys()”
True
>>> 'Color' not in dict.keys()
False
>>> 'white' in dict.values()
True


get()方法

在访问一个键的值之前,检查该键是否存在于字典中,可以使用get()方法,它有两个参数:要取得其值的键,以及如果该键不存在时,返回的备用值。

1
2
3
>>> dict={'name':'Tom','age':18,'Color':'white'}
>>> 'My hair is '+str(dict.get('hair','BLACK'))+'.'
'My hair is BLACK.'


setdefault()方法

setdefault()方法为字典中某个键设置一个默认值,当该键没有任何值时使用它。

传递给setdefault()方法的第一个参数,是要检查的键。第二个参数,是如果该键不存在时要设置的值。如果该键确实存在,方法就会返回键的值。

1
2
3
4
5
6
7
>>> dict={'name':'Tom','age':18,'Color':'white'}
>>> dict.setdefault('hair','black')
'black'
>>> dict.setdefault('age','20')
18
>>> dict
{'Color''white''name''Tom''age'18'hair''black'}


漂亮打印

如果程序中导入pprint模块,就可以使用pprint()和pformat()函数,它们将漂亮打印一个字典的字。

如果字典本身包含嵌套的列表或字典,pprint.pprint()函数就特别有用。

如果希望得到漂亮打印的文本作为字符串,而不是显示在屏幕上,那就调用pprint.pformat()。

pprint.pprint(someDictValue) = print(pprint.pformat(someDictValue))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
>>> import pprint
>>> text='One night can change everything in your life.'
>>> count={}
>>> for char in text:
...     count.setdefault(char,0)
...     count[char]=count[char]+1
...
>>> pprint.pprint(count)
{' '7,
 '.'1,
 'O'1,
 'a'2,
 'c'2,
 'e'5,
 'f'1,
 'g'3,
 'h'3,
 'i'4,
 'l'1,
 'n'6,
 'o'1,
 'r'2,
 't'2,
 'u'1,
 'v'1,
 'y'2}















本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1947913,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值