DAY8 字典与集合

No.6 字典与集合
一、字典(映射类型)
1、语法:dict={key1:value1,key2:value2,…}
e.g.>>>dict1={‘李宁’:‘一切皆有可能’,‘耐克’:‘Just do it’,‘阿迪达斯’:‘Impossible is nothing’}
>>>print(‘李宁的口号是:’,dict1[‘李宁’])
李宁的口号是:一切皆有可能
e.g.>>>dict2=dict(高尔基=‘海燕啊海燕’,戴望舒=‘丁香一样的结着愁怨的姑娘’)
>>>dict2
{‘戴望舒’:‘丁香一样的结着愁怨的姑娘’,‘高尔基’:‘海燕啊海燕’}
若要给字典添加一对键(key)与值(value),则是
>>>dict2[‘刘慈欣’]= ‘宇宙社会学’
>>>dict2
{‘戴望舒’:‘丁香一样的结着愁怨的姑娘’,‘高尔基’:‘海燕啊海燕’,‘刘慈欣’:‘宇宙社会学’}
2、字典的内键方法
1)、fromkeys(s[,v])
创建并返回一个新的字典
e.g.>>>dict1.feomkeys((1,2,3))
{1:None,2:None,3:None}
注:第二个参数默认值为None
>>>dict1.fromkeys((1,2,3),(‘one’,‘two’,‘three’))
{1, (‘one’,‘two’,‘three’) ,2:(‘one’,‘two’,‘three’),3(‘one’,‘two’,‘three’)
2) 访问字典的方法
keys():返回字典键的引用
values():返回内容
items():全部返回
e.g.>>>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])

注:dict1[3]会报错

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’}

二、集合
所有的元素都是唯一的,有唯一性。但是是无序的
1、创建集合的方法
1)直接把一堆元素用花括号括起来
e.g.>>>num1={1,2,3,4,5,5,4,3}
>>>num1
{1,2,3,4,5}
>>>num1[2]
报错
2)使用set()工厂函数
>>>set1=set([1,2,3,4,5,5,4,3)]
>>>set1
{1,2,3,4,5}
2、如何访问集合中的值
1)使用for把集合中的数据一个个读取出来
2)通过in和not in判断一个元素是否在集合中已经存在
3、不可变集合frozen
e.g. >>> num2=frozenset([1,2,3,4,5])
>>>num2.add(0)
报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值