Python(day.6 字典与集合)

字典

Python中的字典把单词称为键,把单词对应的含义称为值,而字典称为关系数组。字典是Python唯一的一个映射类型。

创建和访问字典
>>>dict1={'李宁':'一切皆有可能','耐克':'Just do it','阿迪达斯':'Impossible is nothing','鱼C工作室':'让编程改变世界'}
>>>print('鱼C工作室的口号是:',dict1['鱼C工作室'])
鱼C工作室的口号是:让编程改变世界

字典有多个键和对应的值构成;其中在该例中,‘李宁’‘耐克’'阿迪达斯’等为键,‘一切皆有可能’'Just do it’为对应的值;字典的标志是大括号;每一对键值组合称为象;键的类型可以是整型,浮点型,字符串类型;也可以创建一个空字典。

>>>dict2={1:'one',2:'two',3:'thhree'}
>>>dict2[1]
'one'

还有其他创建字典的方式。

>>>dict3=dict((('F',70),('i',105),('s',115),('h',104),('C',67)))
>>>dict3
{'F':70,'i':105,'s':115,'h':104,'C':67}
>>>dict4=dict(小甲鱼='让编程改变世界',李宁='一切皆有可能')
>>>dict4
{'小甲鱼':'让编程改变世界','李宁':'一切皆有可能'}

注:dict()为一个工厂函数(类型)调用它会生成一个实例;类似的工厂函数有:list(),int(),str(),tuple()……
对字典添加或修改内容:

>>>dict4['小甲鱼']='你好世界'
>>>dict4
{'小甲鱼':'你好世界','李宁':'一切皆有可能'}
>>>dict['书有云']='盖有非凡之功,必待非常之人'
>>>dict4
{'小甲鱼':'你好世界','李宁':'一切皆有可能','书有云':'盖有非凡之功,必待非常之人'}

即若所写键在原来字典中没有时,会添加相应的键值进去。

相关函数

dict.fromkeys(S[,v])
作用:创建并返回一个新的字典。
参数:S字典的键值;v可选,键值对应的值,不提供时默认none。

>>>dict1={}
>>>dict1.fromkeys((1,2,3))
>>>dict1
{1:None,2:None,3:None}
>>>dict1.fromkeys((1,2,3),'number')
>>>dict1
{1:'number',2:'number',3:'number'}

注:该函数只能赋一个键值对应的值,而且不能对键值的值进行修改,只能新创建一个新的字典。

访问字典的方法

1.keys()
返回键的引用。

>>>dict1=dict1.fromkeys(range(2),'zan')
>>>dict1
{0:'zan',1:'zan'}
>>>for eachKey in dict1.keys():
		print(eachKey)
0
1

2.values()
与上面类似:

>>>for eachValue in dict1.keys():
		print(eachValue)
zan
zan

3.items()
将每一个象以元组形式打印出来:

>>>for eachItem in dict1.keys():
		print(eachItem)
(0:'zan')
(1:'zan')

注意,若要求打印字典中的象时,

>>>print(dict1[1])
zan

4.dict.get()
若在字典中试图访问不存在的键时,用该函数可以返回一个None而非报错;若想返回一个具体的值时,可以有具体设置。

>>>dict1.get(2)#此时什么都不会返回
>>>print(dict1.get(2))
None
>>>dict1.get(2,'木有!')
'木有!'
>>>dict1.get(1,'木有!')
zan

如果不知道一个键是否在字典中可以用成员关系操作符in和not in:

>>>2 in dict1
False
>>>1 in dict1
True

注意,在字典中查找时查找的是键,而在序列中查找的是值。
5.dict.clear()
清空一个字典。
6.dict.copy()
拷贝。
7.dict.pop()
给一个键弹出对应的值。
8.dict.popitem()
给一个键弹出对应的象。
9.dict.setdefault()
同get()。
10.dict.update()
相当于对原来的键对应的值进行修改,一次只能修改一个。

>>>a={1:'one',2:'two'}
>>>b={2:'none'}
>>>a.update(b)
>>>a
{1:'one',2:'none'}

集合

在Python的大括号中如果只有键而没有体现出映射关系的时候,该括号称为集合;该集合符合数学中的无序性,唯一性。

创建集合

直接把元素用大括号括起来,或者使用set()工厂函数。

>>>set1=set([1,2,3,3])
>>>set1
{1,2,3}

练习:去除掉重复元素。

>>>num1=[1,2,3,3]
>>>num1=list(set(num1))
>>>num1
[1,2,3]

注意,用set()函数得到的是无序的,若想有序:

>>>temp=[]
>>>for each in num1:
		if each not in temp:
				temp.append(each)
>>>temp
[1,2,3]
如何访问集合中的值

1.可以使用for把集合中的数据一个个读取出来。
2.可以通过in和not in判断一个元素是否在集合中已经存在。

不可变集合

frozenset()

>>>num3=frozenset([1,2,3])
>>>num3.add(0)#此时会报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上官峰晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值