python:字典、集合

字典:

字典由多个键及其对应的值构成(把键值对成为项)。字典的每个键/值(key/value)对用冒号(:)分割。每个项之间用逗号(,)分割,

整个字典用大括号( {} )括住


创建一个字典:

(一)使用dict():通过其他映射(如其他字典)或键/值序列对来创建字典
dict()函数的参数可以是一个序列(但不能是多个),所有由多个序列时,可以将多个序列打包成一个元组或列表


1、利用列表和元组来创建一个字典

list = ([("A",10),("B",20),("C",30),("D",40)])
dictionaiy = dict(list)


dictionaiy_Tuple = dict((("A","爱"),("B","凡"),("C","姐"),("D","姐")))


dictionaiy = dict(zip(["A","B","C","D"],["爱","凡","姐","姐"]))


zip函数:将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)


2、利用关键字参数来创建字典


dictionaiy_1 = dict(C = '姐', B = '凡', D = '姐', A = '爱')


dictionaiy_2 = dict(A = 10, B = 20, D = 40, C = 30)


:利用关键字来创建字典时,键的位置不能加上字符串的引号,否则会报错 


(二)创建字典的方法二:直接写一个字典



字典基本操作:


1、增加或修改键/值对:如果键存在,则修改键对应的值。如果键不存在,则创建一个新的键并赋值



2、删除键值对:显示删除del



字典的特性:


1、同一个键不能出现两次。创建时如果一个键被赋值两次,则后面的值会被记住(后面的值才会生效)


2、键必须是不可变的,可以用数字、字符串、元组充当,不能用列表。键的值可以是任意数据类型


3、可以使用len()函数来计算字典元素的个数。返回键的总数


4、可以使用type()函数来查看数据类型。


字典的格式化:


方法为:在每个转换说明符中的%字符后面加上用圆括号括起来的键,在跟上其他说明元素(键不能加引号)



字典的方法:


1、访问字典中的值:将需要访问的键放入方括弧中。如:dict["A"],字典不能用索引


2、get():返回指定键的值,如果键不在字典中则返回None。不会改变原字典


2、clear():删除字典内的所有项,该函数比较特殊,具体用法可看书第102页


3、copy():浅复制一个字典,该函数比较特殊,具体用法可看书第102页


4、dict.formke.ys( seq[,value] ):以序列seq中的元素作为字典的键,value为字典所有键对应的初始值(无具体的value时,默认为None)


5、key in dict:如果键在字典里返回true,否则返回false。key -要在字典中查找的键,dict-对象字典


6、items():返回字典中的所有键值对(项)。返回结果为一个元组数组


7、keys():返回字典中的所有键。返回结果为一个元组数组


8、values():返回字典中的所有键的值。返回结果为一个列表


9、setdefault(key, default=None):    setdefault()方法和get()方法类似, 如果键不存在于字典中,

将会添加键并将值设为默认值,会改变原字典。key -- 查找的键值,default -键不存在时,设置的默认键值。


9、update() : 将字典2中的键值对更新到字典1中,如果有相同的键就会被覆盖。参数为添加到指定字典中的字典。会改变原字典


10、pop() : 删除字典给定键 key 所对应的值,返回值为被删除的值。会改变原字典


:setdefault()、update()、pop()函数都会改变原字典。即始终只有一个字典。可对比列表方法中的remove()、del()、pop()函数


集合:在我的世界你就是唯一

集合的特点:

1、使用大括号括起来的一堆数字但没有体现出映射关系


2、集合是无序的,所以不能索引集合中的某个元素


3、集合中的元素是唯一的,即不能有重复的


创建一个集合:

1、使用set()方法


2、直接写一个集合




访问集合:使用for循环可以遍历集合中的每个元素




集合方法:

1、add():向一个集合中添加元素,会改变集合


2、remove():移除集合中的元素,会改变集合




不可变集合:使用frozenset()函数