Python 六、字典和集合

一 字典

1.当索引不好用时使用字典,需要查询的单词为键(key),含义为值(value)
2.字典是python唯一的映射类型
3.字典里的数据可以认为是随机排序的
4.创建和访问字典

>>>brand=['李宁','耐克','阿迪达斯','鱼C工作室']
>>>slogan=['一切皆有可能','just do it','impossible is nothing','让编程改变世界']
>>>print('鱼C工作室的口号是:',slogan[brand.index('鱼C工作室')])
鱼C工作室的口号是:让编程改变世界

>>>dict1={'李宁':'一切皆有可能','耐克':'just do it','阿迪达斯':'impossible is nothing','鱼C工作室':'让编程改变世界'} #品牌为键,口号为值
>>>print('鱼C工作室的口号是:',dit1['鱼C工作室'])
鱼C工作室的口号是:让编程改变世界

#用元组或序列 整体当作一个参数
>>>dict3=dict((('F',70),('i',105),('s',115)))
>>>dict3
{'F':70,'i':105,'s':115}
#使用关键字参数
>>>dict4=dict(小甲鱼='让编程改变世界',路遥='平凡的世界')#小甲鱼没有引号
>>>dict4
{'路遥':'平凡的世界','小甲鱼':'让编程改变世界'}#会自动排序

#用键去索引
>>>dict4['路遥']='人生'
>>>dict4
{'路遥':'人生','小甲鱼':'让编程改变世界'}
>>>dict4['爱迪生']='天才就是汗水加灵感'
>>>dict4
{'路遥':'人生','小甲鱼':'让编程改变世界','爱迪生':'天才就是汗水加灵感'}#自动创建键并添加进去

5.fromkeys():创建并返回一个新的字典

>>>dict1={}
>>>dict1.fromkeys((1,2,3))
{1:None,2:None,3:None}
>>>dict1.fromkeys((1,2,3),'number')
{1:'number',2:'number',3:'number'}
>>>dict1.fromkeys((1,2,3),('one','two','three'))
{1:('one','two','three'),2:('one','two','three'),3:('one','two','three')}
>>>dict1.fromkeys((1,3),'数字')
{1:'数字',3:'数字'}#并不会指只改变1 3的值,而是返回一个新的字典

6.访问字典的几个方法

  • keys():返回字典键的引用
  • values():返回内容
  • items():全部返回
>>>dict1=dict1.fromkeys(range(3),'赞')
>>>dict1
{0:'赞',1:'赞',2:'赞'}
>>>for eachkey in dict1.keys()
       print(eachkey)
0
1
2
>>>for eachvalue in dict1.values()
       print(eachvalue)
赞
赞
赞
>>>for eachitem in dict1.itemss()
       print(eachitem)
(0,'赞')
(1,'赞')
(2,'赞')
>>>print(dict1[2])#print(dict1[3])会报错

#get()方法防止报错
>>>print(dict1.get(3))
None
>>>(dict1.get(3,'没有')
'没有'
>>>(dict1.get(2,'没有')
'赞'

#当不知道一个键是否在其中,可以用成员资格操作符 in 和 not in
>>>2 in dict1
True
>>>3 in dict1
>False

#清空一个字典:clear()
>>>dict1.clear()
>>>dict1
{}
#dict1.clear()和dict1={}的差别
>>>dict1={}
>>>a={'姓名','小甲鱼'}
>>>b=a
>>>b
{'姓名','小甲鱼'}
>>>a={}
>>>a
{}
>>>b
{'姓名','小甲鱼'}

>>>a=b
>>>a
{'姓名','小甲鱼'}
>>>a.clear()
>>>a
{}
>>>b
{}

#copy():前拷贝
>>>a={1:'one'}
>>>b=a.copy()#表层拷贝
>>>c=a#完全拷贝
>>>c
{1:'one'}
>>>b
{1:'one'}
>>>a
{1:'one'}
>>>c[2]='two'
>>>c
{1:'one',2:'two'}
>>>a
{1:'one',2:'two'}
>>>b
{1:'one'}

#pop()和popitem()
>>>a.pop(2)
'two'#弹出一个项
>>>a
{1:'one'}
>>>a.popitem()
{1:'one'}#随机
>>>a
{}

#setdefault()
>>>a.setdefault(5,'five')
'five'
>>>a
{5,'five'}

#update()
>>>b={5,'six'}
>>>a.update(b)
>>>a
{5,'six'}
二 集合(set)

1.集合里的元素是唯一的
2.集合里的元素是无序的,不能使用索引

>>>num={1,2,3,3,2}
>>>num
{1,2,3}

3.去掉重复元素

>>>num1=[1,2,3,5,5,4]
>>>temp=[]
>>>for each in num1:
       if each not in temp:
               temp.append(each)
>>>temp
[1,2,3,5,4]

>>>num1=list(set(num1))#set无序 list有序
>>>num1
[1,2,3,4,5]
>>>num2={1,2,3,4,5}
>>> 1 in num2
True
>>>'1' in num2
False
#add()
>>>num2.add(6)
>>>num2
{1,2,3,4,5,6}
#remove()
>>>num2.remove(5)
>>>num2
{1,2,3,4,6}
#frozenset():不可变集合
>>>num3=frozenset([1,2,3,4,5])
>>>num3.add(6)
出错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_961876584

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

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

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

打赏作者

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

抵扣说明:

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

余额充值