python入门第七天

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

键是不可变的,所以键只能用不可变类型的数据。

不可变类型: 整型,浮点型,字符串,元组

可变类型:列表,字典

一个简单的字典实例:

 1 a=10
 2 print(id(a))
 3 b=a
 4 print(id(b))
 5 b=15
 6
 7 print(id(b))
 8
 9
10 dic={‘name‘:‘Tom‘,‘age‘:‘21‘,‘gender‘:‘man‘,‘hobby‘:True}
11 print(dic)

结果:

1558212352

1558212352

1558212512

{‘name‘: ‘Tom‘, ‘age‘: ‘21‘, ‘gender‘: ‘man‘, ‘hobby‘: True}

新建字典对象

1 dic={‘name‘:‘Tom‘,‘age‘:‘21‘,‘gender‘:‘man‘,‘hobby‘:True}
2
3 a=list()
4 b_sub=[(‘name‘,‘Tom‘),(‘age‘,78)]
5 b=dict(b_sub)
6
7 print(type(b))
8 print(b)
9 print(type(b_sub))

输出结果

<class ‘dict‘>
{‘name‘: ‘Tom‘, ‘age‘: 78}
<class ‘list‘>

字典的内置操作:

dic1={‘name‘:‘Tom‘}
dic1[‘age‘]=18

print(dic1)
‘‘‘
radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
‘‘‘
age_1=dic1.setdefault(‘age‘,34)
age_2=dic1.setdefault(‘hobby‘,‘running‘)

print(dic1)

print(age_1)
print(age_2)

结果:

{‘name‘: ‘Tom‘, ‘age‘: 18}
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘}
18
running

操作:

dic1={‘name‘:‘Tom‘}
dic1[‘age‘]=18

age_1=dic1.setdefault(‘age‘,34)
age_2=dic1.setdefault(‘hobby‘,‘running‘)
print(dic1)

print(dic1.keys())#以列表返回一个字典所有的键
print(dic1.values())#以列表返回一个字典所有的值
print(dic1.items()) #以列表返回可遍历的(键, 值) 元组数组

结果:

{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘}
dict_keys([‘name‘, ‘age‘, ‘hobby‘])
dict_values([‘Tom‘, 18, ‘running‘])
dict_items([(‘name‘, ‘Tom‘), (‘age‘, 18), (‘hobby‘, ‘running‘)])

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del命令

>>> dic1={‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘}
>>> dic2=dic1.copy()
>>> dic2
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘}

>>> del dic2[‘age‘]
>>> dic2
{‘name‘: ‘Tom‘, ‘hobby‘: ‘running‘}
>>> dic2.clear()
>>> dic2
{}
>>> del dic2
>>> dic2
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    dic2
NameError: name ‘dic2‘ is not defined
>>> 
>>> dic3
{‘gender‘: ‘man‘, ‘city‘: ‘jiangsu‘}
>>> dic1.update(dic3)
>>> dic1
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘, ‘gender‘: ‘man‘, ‘city‘: ‘jiangsu‘}
>>> dic3
{‘gender‘: ‘man‘, ‘city‘: ‘jiangsu‘}
>>> dic1.pop(‘city‘)
‘jiangsu‘
>>> dic1
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘, ‘gender‘: ‘man‘}
>>> dic1.pop(‘city‘)
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    dic1.pop(‘city‘)
KeyError: ‘city‘
>>> dic1.setdefault(‘city‘,‘changzhou‘)
‘changzhou‘
>>> dic1.pop(‘city‘)
‘changzhou‘
>>> dic1
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘, ‘gender‘: ‘man‘}
>>> dic1.setdefault(‘city‘,‘changzhou‘)
‘changzhou‘
>>> dic1
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘, ‘gender‘: ‘man‘, ‘city‘: ‘changzhou‘}
>>> dic1[‘city‘]=‘nanjing‘
>>> dic1
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘, ‘gender‘: ‘man‘, ‘city‘: ‘nanjing‘}
>>> dic1.pop(‘city‘)
‘nanjing‘
>>> dic1
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘, ‘gender‘: ‘man‘}
>>> 

dic1.popitem()

>>> dic1
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘, ‘gender‘: ‘man‘}
>>> dic1.popitem()
(‘gender‘, ‘man‘)

>>> dic1.popitem()
(‘hobby‘, ‘running‘)
>>> dic1
{‘name‘: ‘Tom‘, ‘age‘: 18}
>>> 

Python3 字典 fromkeys()方法

>>> dic1
{‘name‘: ‘Tom‘, ‘age‘: 18}
>>> dic4=dict.fromkeys(dic1)
>>> dic4
{‘name‘: None, ‘age‘: None}
>>> dic4[‘name‘]=‘Tom‘
>>> dic4
{‘name‘: ‘Tom‘, ‘age‘: None}
>>> dic5=dict.fromkeys(dic1,20)
>>> dic5
{‘name‘: 20, ‘age‘: 20}
>>> 
1 dic1={‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘}
2 dic2=dict.fromkeys(dic1,‘demo‘)
3
4 print(dic1)
5 print(dic2)
6
7 dic3=dict.fromkeys(dic1,[‘demo‘,‘test‘])
8 print(dic3)

结果:

{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘}
{‘name‘: ‘demo‘, ‘age‘: ‘demo‘, ‘hobby‘: ‘demo‘}
{‘name‘: [‘demo‘, ‘test‘], ‘age‘: [‘demo‘, ‘test‘], ‘hobby‘: [‘demo‘, ‘test‘]}
 1 dic1={‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘}
 2 dic2=dict.fromkeys(dic1,‘demo‘)
 3
 4 print(dic1)
 5 print(dic2)
 6
 7 dic3=dict.fromkeys(dic1,[‘demo‘,‘test‘])
 8 print(dic3)
 9
10 dic3[‘name‘][1]=‘test_change‘
11 print(dic3)
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘hobby‘: ‘running‘}
{‘name‘: ‘demo‘, ‘age‘: ‘demo‘, ‘hobby‘: ‘demo‘}
{‘name‘: [‘demo‘, ‘test‘], ‘age‘: [‘demo‘, ‘test‘], ‘hobby‘: [‘demo‘, ‘test‘]}
{‘name‘: [‘demo‘, ‘test_change‘], ‘age‘: [‘demo‘, ‘test_change‘], ‘hobby‘: [‘demo‘, ‘test_change‘]}

遍历字典:

 1 dic={4:‘a‘,6:‘b‘,3:‘c‘,9:‘d‘}
 2
 3 print(sorted(dic.items()))
 4 print(sorted(dic.keys()))
 5 print(sorted(dic.values()))
 6 print(sorted(dic))
 7
 8 print(‘-----------遍历字典1-------------‘)
 9 for i in dic:
10     print(i,dic[i])
11
12
13 print(‘-----------遍历字典2-------------‘)
14 for i in dic.items():
15     print(i)
16
17 print(‘-----------遍历字典3-------------‘)
18 for i in dic.keys():
19     print(i)
20
21 print(‘-----------遍历字典4-------------‘)
22 for i in dic.values():
23     print(i)

结果:

[(3, ‘c‘), (4, ‘a‘), (6, ‘b‘), (9, ‘d‘)]
[3, 4, 6, 9]
[‘a‘, ‘b‘, ‘c‘, ‘d‘]
[3, 4, 6, 9]
-----------遍历字典1-------------
4 a
6 b
3 c
9 d
-----------遍历字典2-------------
(4, ‘a‘)
(6, ‘b‘)
(3, ‘c‘)
(9, ‘d‘)
-----------遍历字典3-------------
4
6
3
9
-----------遍历字典4-------------
a
b
c
d

原文地址:https://www.cnblogs.com/Mengchangxin/p/9144162.html

时间: 2024-08-29 14:46:58

python入门第七天的相关文章

python入门第1篇 python简介

一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语言的编译器.Python这个名字,来自Guido所挚爱的电视剧Monty Python's Flying Circus.他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言. 最新的TIOBE排行榜,Python占据第4, Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言.

CTF---密码学入门第七题 杯酒人生

杯酒人生分值:10 来源: Veneno 难度:易 参与人数:2633人 Get Flag:790人 答题人数:963人 解题通过率:82% 使用古典密码 一喵星人要想喵星发送一段不知道干什么用的密码“BLOCKCIPHERDESIGNPRINCIPLE”, 但是它忘记了密钥是什么, 手头(爪头)只有它自己加密过的密钥“HTRUZYJW”, 而且它 还知道原密钥是一个单词, 你可以帮助它传递信息, 早日攻克蓝星, 征服人类吗? 解题链接: 原题链接:http://www.shiyanbar.co

python入门第三天

Python字符串运算符 下表实例变量a值为字符串 "Hello",b变量值为 "Python": 操作符 描述 实例 + 字符串连接 a + b 输出结果: HelloPython * 重复输出字符串 a*2 输出结果:HelloHello [] 通过索引获取字符串中字符 a[1] 输出结果 e [ : ] 截取字符串中的一部分 a[1:4] 输出结果 ell in 成员运算符 - 如果字符串中包含给定的字符返回 True 'H' in a 输出结果 1 not

python入门第十一天_函数

Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 不同于数学中的函数定义,在计算机中,函数又可以称呼为子程序. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用

python入门第十六天__列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)): >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环: >>> L = []

python入门第十七天_生成器

通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了. 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间.在Python中,这种一边循环一边计算的机制,称为生成器:generator. 要创建一个generator,有很多种方法.第一

Spring入门第七课

Bean之间的关系:继承和依赖. 继承Bean配置 Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父bean的Bean称为子Bean. 子Bean从父Bean中继承配置,包括Bean的属性配置. 子Bean也可以覆盖从父Bean继承过来的配置. 父Bean可以作为配置模板,也可以作为Bean实例,若只想把父Bean作为模板,可以设置<bean>的abstract属性为true,这样Spring将不会实例化这个bean.(抽象Bean,抽象Bean不能被实例化,只能

大数据入门第七天——MapReduce详解(下)

一.mapTask并行度的决定机制 1.概述 一个job的map阶段并行度由客户端在提交job时决定 而客户端对map阶段并行度的规划的基本逻辑为: 将待处理数据执行逻辑切片(即按照一个特定切片大小,将待处理数据划分成逻辑上的多个split,然后每一个split分配一个mapTask并行实例处理 这段逻辑及形成的切片规划描述文件,由FileInputFormat实现类的getSplits()方法完成,其过程如下图: // 完整的笔记介绍,参考:http://blog.csdn.net/qq_26

java入门第七篇-JQuery;

[JQuery语法] 1.使用Jquery必须先导入jquery.x.x.x.js文件 2.JQuery中的选择器: $("选择器名称").方法().($是JQuery的缩写,也就是说选择器可以是JQuery("选择器名称").方法().) present+ next:选定 present节点的下一个相邻节点. present~ next:选定present节点的后面全部兄弟节点. 3. jQuery中的文档就绪函数: $(document).ready(funct