一、字典
字典属于无序列,元素存放无序,是通过哈希方式进行数据存取的,字典是一个可变容器,字典中保存一个的键值对: key : value。我们通过key来获取对应的值,很类似我们的汉语字典。
- 字典中键必须是唯一的,必须是不可变类型
- 字典查找速度比较快
1 字典的创建
![](https://img-blog.csdnimg.cn/20200121182141320.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ1ODY2NTE=,size_16,color_FFFFFF,t_70)
2 字典操作
⼆、集合(set)
特点:不允许有重复元素,如果添加重复元素,则会⾃动过滤,可以进行交集、并集的运算。
本质:无序且无重复元素的数据结构
1 创建集合
2 集合操作
三、补充
1.数据类型的转换
![](https://img-blog.csdnimg.cn/20200121184806597.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ1ODY2NTE=,size_16,color_FFFFFF,t_70)
2. 布尔值
在python中,能够解释为假的值有: None、 0、 0.0、 False、所有的空容器(空列表、空元组、空字典、空集合、空字符串串),其它是真
3. zip函数
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
语法: zip(iterable1,iterable2, ...)
参数说明: iterable -- 一个或多个可迭代对象(字符串、列表、元祖、字典)
4. 随机数
import random
5.列表推导式
运⽤列表推导式,可以快速生成list,可以通过一个list推导出另一个list,⽽代码却十分简洁。
6.集合推导式和字典推导式
集合推导式
字典推导式
作业
1. 创建一个空元组: _t1 = ()____;创建一个具有一个元素5的元组:__t1 = (5,)________。
2. 创建一个空字典d: _d = {}_;向d中添加⼀个键值对( ’a’:3)__d['a'] = 3____; d[‘a’] = __3______; d[‘b’] = ___2______; d.get(‘b’,2) =_2__;执行d[‘b’] = 5后, d = _{'a': 3, 'b': 5}__。执行d.update({1:3,2:4})后d=__{'a': 3, 'b': 5, 1: 3, 2: 4}_____。
3. d = {‘a’:1,’c’:5,’d’:9,’b’:10};则list(d.keys()) = __['a', 'c', 'd', 'b']___________;
list(d.values()) = _[1, 5, 9, 10]__________; list(d.items()) = __[('a', 1), ('c', 5), ('d', 9), ('b', 10)]____________;
4. 执行a,b,c = ‘123’后, a=_1_; b=_2__; c=_3__。
5. 执行*a,b,c = 1,2,3,4,5,6后, a=_[1, 2, 3, 4]__________; b=__5__;c = __6___。
6. 执 行 a , b , c = { " h e l l o " : 1 0 , " w o r l d " : 2 0 , " 你 好 " : ' 世 界 ' } 后 ,
a=__h e l l o_____;b=_w o r l d_____;c=__你 好_____。
7. 执行a,*b,c = [1,2,3,4,5,6]后, a=___1__;b=__[2, 3, 4, 5]______;c=___6____。
8. a=[2,5,3,9,6],则执行a,b,*c = a.sort(reverse=True)后, a = __9__;b=__6___。
9. 已知a = {1,2,3,3,4,5},执⾏a.add(4)后, a = __{1, 2, 3, 4, 5}____________;执⾏a.remove(2)后a=___{1, 3, 4, 5}_________;执行a = a – {1,2,3}后a=_{4, 5}__; a =a | {1,2,6,7}后a=___{1, 2, 3, 4, 5, 6, 7}_____;执行a = a & {1,3,5}后a =__{1, 3, 5}__。
10.执行a=[x for x in range(10) if x%3]后, a=____[1, 2, 4, 5, 7, 8]_______________。
11.执行a = [5 for x in range(5)]后a = __[5, 5, 5, 5, 5]______________。
12.a=[2,4,9,5,9,8,1],表达式[index for index,value in enumerate(a) if value== max(a)]的值为: _[2, 4]_____________。
13.a=[[1,3,5],[2,4,6]],则表达式[x for elem in a for x in elem]的值为:_[1, 3, 5, 2, 4, 6]_________。
14.a=[2,3,4,1,6,9,8],执行b = [index for index, value in enumerate(a) if value>3]后, b=__[2, 4, 5, 6]________。
15.x=’abcde’, y=’adcbe’;则执行a= [m==n for m,n in zip(x,y)]后,a=___[True, False, True, False, True]________。
16.表达式[1]+[2] = _[1, 2]_______;(1,)+(3,)=__(1, 3)____; (1) + (2) = __3______。
17.a = {‘a’:10,’b’:3,’c’:5},则sum(list(a.values())) = __18_____。
18.请定义空列表: l1 =_[ ]____; 空元组: _t1 =_( )_____; 空集合: __s1 = set()____; 空字典:__d1 = {}___。