在python中字典和集合都是⽤⼀对什么作为界定符_Python中
的字典和集合
⼀、字典(dict)
1. 概述
字典是Python唯⼀的映射类型。
只能使⽤不可变的对象(⽐如字符串)来作为字典的键,但是可以把不可变或可变的对象作为字典的值。
键值对在字典中以这样的⽅式标记:d = key1 : value1, key2 : value2 。注意它们的键/值对⽤冒号分割,⽽各个对⽤逗号分割,
所有这些都包括在花括号中。
字典中的键/值对是没有顺序的。
字典是 dict 类的实例/对象。
2. 创建与访问
直接通过花括号括起来键/值对来创建。可以这样来创建空字典。字典可以索引,只不过索引值是键值。
利⽤内置函数 dict() 来创建字典,注意整个函数只有⼀个参数,如下:
dict3 = dict((('F',70), ('i',105), ('h',115), ('c',67))),只要能让它到映射关系就OK。
还可以指定关键字参数来创建字典:
dict4 = dict(Turing = '让编程改变世界'),注意此时键即 Turing 不能加引号,会报错。
对于字典还可以通过键来修改值,如果存在这个键,就会修改其值,如果根本不存在这个键,就会再添加⼀个键/值对。如:
dict4[‘ Turing ’] = ‘ ⼤家⼀起来编程’
dict4[' Edison '] = ' ⼤发明家'
>>>dict4
{'Turing': '⼤家⼀起来编程', 'Edison': '⼤发明家'}。
3. 字典的内置⽅法
1) 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: '数字'}
fromkeys⽅法⽤来创建⼀个字典,有两个参数,⼀个是键,⼀个是值。注意第⼆个参数都会赋给所有的键,没有聪明的⼀⼀对应。
update是什么没有办法通过这个办法修改键的值,强制修改的话会创建⼀个新的字典。
2)keys() values() items()
分别遍历键、值、项。
3)get()
当索引并不是字典中的键时,访问输出时会出错,⽤get()⽅法可以巧妙的解决这个问题。
>>> print(dict2[31])
赞
>>> print(dict2[32])
Traceback (most recent call last):
File "", line 1, in
print(dict2[32])
KeyError: 32
>>> (32)
>>> (32))
None
>>> (32,'⽊有')
'⽊有'
>>> (31,'⽊有')
'赞'
4)clear()
清空字典。如果直接把想要清空的字典赋给空字典,和clear()⽅法还是有很多不同的,有时候可能有威胁,还是使⽤clear()⽅法。>>> dict2.clear()
>>> dict2
{}
>>> dict2 = {}
>>> a = {'你好': '哈哈'}
>>> b = a
>>> b
{'你好': '哈哈'}
>>> a = {}
>>> b
{'你好': '哈哈'}
>>> a = b
>>> a
{'你好': '哈哈'}
>>> b
{'你好': '哈哈'}
>>> a.clear()
>>> a
{}
>>> b
{}
5)copy()
浅拷贝,和赋值操作的不同看代码:
>>> a = {1:'one',2:'two',3:'three'}
>>> b = a.copy()
>>> c = a
>>> c
{1: 'one', 2: 'two', 3: 'three'}
>>> a
{1: 'one', 2: 'two', 3: 'three'}
>>> b
{1: 'one', 2: 'two', 3: 'three'}
>>> id(a)
57877832
>>> id(b)
57838536
>>> id(c)
57877832
6) pop() 与 popitem()
⼀个是弹出值,⼀个是弹出项,后者是随机弹出的。>>> a.pop(2)
'two'
>>> a
{1: 'one', 3: 'three'}
>>> a.popitem()
(1, 'one')
7) setdefault()
添加键或添加键/值对。如:
(注:添加后的顺序随机)
>>> a.setdefault('sq')
>>> a
{'sq': None, 3: 'three'}
>>> a.setdefault(5,'five')
>>> a
{3: 'three', 5: 'five', 'sq': None}
8) update()
⽤字典来更新字典,如果参数字典中的键原字典有就更新其值,没有就⾃动添加上去新键。
⼆、集合(set)
1. 概述
集合是字典的“表亲”,花括号不只是字典的特权。当⽤花括号括起来⼀堆没有映射关系的元素时就创建了⼀个集合。>>> num2 = {1, 2, 3, 4}
>>> type(num2)
2. 和数学中的概念⼀样,集合具有互异性,⽆序性(因此集合⽆法⽤于索引)。
>>> num= {1, 2, 3, 4, 6, 3, 2}
>>> num
{1, 2, 3, 4, 6}
>>> num[2]
Traceback (most recent call last):
File "", line 1, in
num[2]
TypeError: 'set' object does not support indexing
3. 内置⼯⼚函数 set() 可以⽤来创建集合,参数可以是列表,元组,甚⾄是字符串。
>>> set1 = set([1,2,3, 4,5])
>>> set1
{1, 2, 3, 4, 5}
4. 因为集合的互异性,反⽽给序列中去除相同的元素提供了⼀个巧妙的⽅法。
list2 = list(set(list1))
缺点是⽆法保证和原序列同样的顺序,慎⽤。
5. 集合的内置⽅法 add() remove()
创建不可变集合的函数 frozenset().
6. 其他常见集合内建⽅法总结
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论