|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
《零基础入门学习Python》
——学习笔记
026字典:当索引不好用时2
一. 定义分析
1. dict.fromkeys(k,v):创建或访问新的字典。k为键,v为值,如果值不存在则显示为None。注意,k与y的对应关系并不是元素一一对应的,而是把y的所有值贴在每个k的元素上 #举例子
>>>dict1 = (‘num1’,’num2’,’num3’)
>>>dict.fromkeys(dict1,10)
{'num2': '10', 'num3': '10', 'num1': '10'}
2. dict.items():将整个所有项以元祖的形式打印出来。把字典中所有的键与值的对应打印出来。#举例子
>>> dict1 = dict.fromkeys(range(30),'福')
>>> for eachitems in dict.items(dict1):
print(eachitems)
(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, '福')
3. dict.get():
dict[key]:当key不存在的时候,会抛出异常
dict.get(key, defaut_value=None),当key不存在的时候,不会抛出异常,而且会返回默认值,默认值是可以改变的。#举例子
>>> dict1 = dict.fromkeys((1,2,3),'牛')
>>> dict1
{1: '牛', 2: '牛', 3: '牛'}
>>> dict1.get(2,'是什么?')
'牛'
>>> dict1.get(4,'是什么?')
'是什么?'
4. 成员资格操作符在字典中的查询:如果不知道字典中是否存在某一键,可以通过in或not in进行查询。#举例子
>>> dict1 = dict.fromkeys((1,2,3),'牛')
>>> 2 in dict1
True
>>> 8 in dict1
False
5. clear():清空一个字典#举例子1
>>> dict1 = dict.fromkeys((1,2,3),'牛')
>>> dict.clear(dict1)
>>> dict1
{}
#举例子2
>>> a = {1}
>>> b = a
>>> a.clear()
>>> a
{}
>>> b
{}
6. dict.copy():浅拷贝。注:浅拷贝不等于赋值。#举例子
>>> a = {1:'one',2:'two',3:'three'}
>>> b = a.copy()
>>> c = a
>>> id(a)
55082632
>>> id(b)
55826632
>>> id(c)
55082632
7. dict.pop()和dict.popitem:
pop是给对应的键弹出对应的值,并且使整个该对应在字典中消失。
popitem则是随机弹出一个键与其对应的值#举例子
>>> a = {1:'one',2:'two',3:'three'}
>>> a.pop(1)
'one'
>>> a
{2: 'two', 3: 'three'}
>>> a.popitem()
(2, 'two')
>>> a
{3: 'three'}
8. dict.setdefault:在列表中增加一个键和值,如果没有值只有键则对应值为默认值。#举例子
>>> a
{1: 'one', 2: 'two', 3: 'three', '?': None, 9: None, '9': None}
>>> a = {1: 'one', 2: 'two', 3: 'three'}
>>> a.setdefault('4')
>>> a
{1: 'one', 2: 'two', 3: 'three', '4': None}
>>> a.setdefault(5,'five')
'five'
>>> a
{1: 'one', 2: 'two', 3: 'three', 5: 'five', '4': None}
9. dict.update():更新字典中键所对应的值。#举例子
>>> a = {1: 'one', 2: 'two', 3: None}
>>> b = {3:'three'}
>>> a.update(b)
>>> a
{1: 'one', 2: 'two', 3: 'three'}
二. 杂谈
1. >>> dict1 = {1,2,3}
>>> dict.fromkeys(dict1,'牛')
{1: '牛', 2: '牛', 3: '牛'}
>>> print(dict1,get(2,'是什么?'))
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
print(dict1,get(2,'是什么?'))
NameError: name 'get' is not defined
为什么报错了呢?一定要记住,如果朋友们使用***.fromkeys()这个方法的话,如果在前面不将其赋值的话,那么dict1其实还是原来的{1,2,3},而不是将fromkeys后的字典保存,所以如果想保留下来一定要记得用一个键将其赋值。
2.我发现大部分的赋值错误问题都出现在没有很好理解一点,在python中其实赋值这个说法是不准确的,正确理解应该是在值上贴标签,值不会因为标签的变更而变更。
3.dict.setdefault()在使用时如果键为引号引起的数字,则在显示中没有引号,如果为字母或符号,则会有引号标注。如果括号内的键字典中已存在,则会显示出该键所对应的值。
二. 部分作业分析
无
三. 知识掌握程度
心得:进一步掌握了字典的使用方法。
难点:对每个字典方法中参数的理解
重点:避免使用字典中易错的用法。
|
评分
-
查看全部评分
|