Python学习(26---27)字典(2)、集合

参考视频:零基础入门学Python (作者:小甲鱼)

字典(2)

字典的内置方法:

fromkeys()

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

keys() 返回字典键的引用

>>> dict1 = dict1.fromkeys(range(32),'赞')
>>> dict1
{0: '赞', 1: '赞', 2: '赞', 3: '赞', 4: '赞', 5: '赞', 6: '赞', 7: '赞', 8: '赞', 9: '赞', 10: '赞', 11: '赞', 12: '赞', 13: '赞', 14: '赞', 15: '赞', 16: '赞', 17: '赞', 18: '赞', 19: '赞', 20: '赞', 21: '赞', 22: '赞', 23: '赞', 24: '赞', 25: '赞', 26: '赞', 27: '赞', 28: '赞', 29: '赞', 30: '赞', 31: '赞'}
>>> for eachKey in dict1.keys():
    print(eachKey)


0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
>>> 

values()

>>> for eachValue in dict1.values():
    print(eachValue)


赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞
赞

items()

>>> for eachItem in dict1.items():
    print(eachItem)


(0, '赞')
(1, '赞')
(2, '赞')
(3, '赞')
(4, '赞')
(5, '赞')
(6, '赞')
(7, '赞')
(8, '赞')
(9, '赞')
(10, '赞')
(11, '赞')
(12, '赞')
(13, '赞')
(14, '赞')
(15, '赞')
(16, '赞')
(17, '赞')
(18, '赞')
(19, '赞')
(20, '赞')
(21, '赞')
(22, '赞')
(23, '赞')
(24, '赞')
(25, '赞')
(26, '赞')
(27, '赞')
(28, '赞')
(29, '赞')
(30, '赞')
(31, '赞')

clear() 清空整个字典

>>> dict1.clear()
>>> dict1
{}

当键不存在时

>>> print(dict1[32])
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    print(dict1[32])
KeyError: 32
>>> dict1.get(32)
>>> print(dict1.get(32))
None
>>> dict1.get(32,'木有')
'木有'
>>> 31 in dict1
True
>>> 32 in dict1
False

copy() 浅拷贝 和赋值不一样

浅拷贝创造了一个新的 赋值只是换了个标记 仍旧指向原数据

>>> a = {1:'one',2:'two',3:'three'}
>>> b = a.copy()
>>> c = a
>>> a
{1: 'one', 2: 'two', 3: 'three'}
>>> b
{1: 'one', 2: 'two', 3: 'three'}
>>> c
{1: 'one', 2: 'two', 3: 'three'}
>>> id(a)
48077880
>>> id(b)
48078120
>>> id(c)
48077880
>>> c[4] = 'four'
>>> c
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}
>>> a
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}
>>> b
{1: 'one', 2: 'two', 3: 'three'}
>>> 

pop 弹出一个数据

popitem 随机弹出一个数据

>>> a.pop(2)
'two'
>>> a
{1: 'one', 3: 'three', 4: 'four'}
>>> a.popitem()
(1, 'one')
>>> 

setdefault()

排列顺序是随机的 没有规律

>>> a.setdefault('小白')
>>> a
{'小白': None, 3: 'three', 4: 'four'}
>>> a.setdefault(5,'five')
'five'
>>> a
{'小白': None, 3: 'three', 4: 'four', 5: 'five'}

update()

用一个字典更新另一个字典

>>> b = {'小白':'dog'}
>>> a.update(b)
>>> a
{'小白': 'dog', 3: 'three', 4: 'four', 5: 'five', '小': '白'}

集合

用花括号{} 但是没有体现出映射关系,就是集合

>>> num = {}
>>> type(num)
<class 'dict'>
>>> num1 = {1,2,3,4,5}
>>> type(num1)
<class 'set'>
>>> 

集合是无序的 不重复啊 唯一的

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

创建

1.直接把一堆元素用{}括起来
2.使用set()工厂函数

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

实现去除重复元素的例子

1.

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


>>> temp
[1, 2, 3, 4, 0]

2.使用set 注意得到的列表是无序的

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

如何访问集合中的值

1.for一个个读取
2.通过in 和not in 判断一个元素是否在集合中已经存在

add()

添加

remove()

移除

不可变集合frozenset

>>> num3 = frozenset([1,2,3,4])
>>> num3.add(0)
Traceback (most recent call last):
  File "<pyshell#73>", line 1, in <module>
    num3.add(0)
AttributeError: 'frozenset' object has no attribute 'add'
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值