鱼C论坛

 找回密码
 立即注册
查看: 1855|回复: 0

[技术交流] 《零基础入门学习Python》026字典:当索引不好用时2

[复制链接]
发表于 2017-7-26 14:10:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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()在使用时如果键为引号引起的数字,则在显示中没有引号,如果为字母或符号,则会有引号标注。如果括号内的键字典中已存在,则会显示出该键所对应的值。

二.        部分作业分析


三.        知识掌握程度

心得:进一步掌握了字典的使用方法。

难点:对每个字典方法中参数的理解

重点:避免使用字典中易错的用法。

评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 15:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表