xinggevip

Python(6-2)当索引不好用时——高级操作
Python 字典(Dictionary) fromkeys()方法描述Python 字典 fromkeys() ...
扫描右侧二维码阅读全文
26
2018/11

Python(6-2)当索引不好用时——高级操作

Python 字典(Dictionary) fromkeys()方法

描述
Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
语法
fromkeys()方法语法:

dict.fromkeys(seq[, value])

参数

  • seq -- 字典键值列表。
  • value -- 可选参数, 设置键序列(seq)的值

返回值
该方法返回一个新字典。

实例

>>> dict1 = {}
>>> dict1.fromkeys((1,2,3))
{1: None, 2: None, 3: None}
>>> dict1 = dict1.fromkeys(range(32),'赞')
>>> dict1
{0: '赞', 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: '赞', 27: '赞', 28: '赞', 29: '赞', 30: '赞', 31: '赞'}

字典的keys()访问键

>>> for eachkey in dict1.keys():
    print(eachkey)

    
0
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
27
28
29
30
31

字典的values()方法访问值

>>> for eachvalue in dict1.values():
    print(eachvalue)

    
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞

字典的items()方法访问整个字典

>>> for eachitem in dict1.items():
    print(eachitem)

    
(0, '赞')
(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, '赞')
(27, '赞')
(28, '赞')
(29, '赞')
(30, '赞')
(31, '赞')

字典的get()方法通过键访问值

>>> dict1.get(32)
>>> print(dict1.get(32))
None
>>> print(dict1.get(32,'没有'))
没有
>>> print(dict1.get(31,'没有'))
赞

in方法在字典和序列中的区别

  • in方法在“序列”中的应用是判断是否存在 “值”
  • in方法在“字典”中的应用是判断是否存在 “键”
>>> 31 in dict1
True
>>> 32 in dict1
False
>>> score = [1,2,3]
>>> 1 in score
True

字典的clear()方法清空字典

>>> dict1
{0: '赞', 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: '赞', 27: '赞', 28: '赞', 29: '赞', 30: '赞', 31: '赞'}
>>> dict1.clear()
>>> dict1
{}

clear()方法和直接赋值为空的区别

clear()方法和直接赋值为空在某种角度来说是相同的,但是直接赋值为空作为清除不严谨。
clear()方法之直接将内存里的数据释放掉,而直接赋值为空只是将变量指向空的内存而已,原来内存中的数据还依然存在

>>> dict1 = {'姓名':'油条'}
>>> dict1
{'姓名': '油条'}
>>> dict2 = dict1
>>> dict2
{'姓名': '油条'}
>>> dict1 = {}
>>> dict1
{}
>>> dict2
{'姓名': '油条'}

字典的赋值和copy()方法的区别
赋值只是将两个变量名称不同,指向的内存地址相同,当一个变量的值发生变化时,另一个变量的值也会发生变化;
copy()方法是重新开辟了一块新的内存空间,不受其他变量值改变的干扰

>>> a = {1:'one',2:'two',3:'three'}
>>> b = a.copy()
>>> c = a
>>> a
{1: 'one', 2: 'two', 3: 'three'}
>>> b
{1: 'one', 2: 'two', 3: 'three'}
>>> c
{1: 'one', 2: 'two', 3: 'three'}
>>> id(a)
2044142702880
>>> id(b)
2044142669544
>>> id(c)
2044142702880
>>> c[4] = 'four'
>>> c
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}
>>> a
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}
>>> b
{1: 'one', 2: 'two', 3: 'three'}

字典的pop()方法和popitem()方法
pop(键)方法,弹出制定键的值;
popitem(),随机弹出一个项目;

>>> a.pop(2)
'two'
>>> a.popitem()
(4, 'four')

字典的setdefault()方法
和get方法差不多,get方法只检查有没有此值;
setdifault方法增加了,如果查不到此值则创建一个值,如果只填一个参数,第一个参数为键名,默认键的值为None;
如果填写两个参数,则添加一个项目或者返回键的值;

>>> a = {1:"one",2:"two",3:"three"}
>>> a
{1: 'one', 2: 'two', 3: 'three'}
>>> a.setdefault('小白')
>>> a
{1: 'one', 2: 'two', 3: 'three', '小白': None}
>>> a.setdefault(5,'five')
'five'

字典的update()方法
更新字典中键的值

>>> b = {'小白':'朋友'}
>>> b
{'小白': '朋友'}
>>> a.update(b)
>>> a
{1: 'one', 2: 'two', 3: 'three', '小白': '朋友', 5: 'five'}
>>> 
Last modification:November 29th, 2018 at 06:46 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment