Python集合&字典

Python集合&字典

@

字典

字典的几种定义方式

第一种

字典{key1 : value1, key2 : value2, ......}

dict1 = {'one': 1, 'two': 2}

第二种

使用工厂函数,用元组操作。

dict2 = dict(((1,2), (3, 4), (5, 6), (7,8)))

需要用到这么多括号的原因:

  • 第一层括号是dict的括号,里面需要一个元素。
  • 第二层括号就是为了把四个元组变成一个对象给dict
  • 第三层括号是元组的括号

第三种

还是使用工厂函数dict,但是是用"="操作

字典dict(key1 = value1, key2 = value2, ......)

dict3 = dict(one = 1, two = 2, three = 3)

键值key不能随便改格式,解释器会自动将键值转换为字符串存储。

字典的一些基本操作

通过key得到value

value = dict3[key]
value = dict3.get(key)

增加字典键值对

dict3[new_key] = new_value
dict3.update(dict2)

此时Python会自动创建键值对

删除字典键值对

dict3.pop(key)

会返回与之对应的键值

格式化操作

dict4.formkeys((1, 2, 3),'num')

新建一个字典dict4然后所有的key都对应'num'

清空字典

辨析dict3 = {}dict3.clear

前者是把dict3指向一块新的内存,不再管原来的字典,若原来的地址未被其它引用指向,将会被Python的垃圾自动回收机制清空,如果有引用,将不会被清空。

后者是直接将dict3指向的那块内存清空。

复制字典

辨析dict4 = dict3dict4 = dict3.copy

前者并未开辟一块新内存,后者开辟了,底层原理同上,懂得都懂。

遍历字典

遍历key

for eachkey in dict3.keys():
print(eachkey)

遍历value

for eachvalue in dict3.values():
print(eachvalue)

遍历键值对

for eachitems in dict3.items():
print(eachitems)

成员资格判断

key in dict3

返回值为bool类型

集合

集合的定义方式

num = {1, 2, 3, 6, 8, 7, 4, 9, 10, 16, 17, 14, 2, 4}

用大花括号即可定义

往集合里面添加元素

num.append(10)

集合里面删除元素

num.pop()
##随机删除一个
num.remove(4)
##删除4

注意:集合会自动排序,操作时要注意。

上一篇:bzoj 1449: [JSOI2009]球队收益 凸费用拆边费用流 由于有负边,先spfa处理顶标然后zkw


下一篇:HtmlTable导出Excel,复杂表头,合并单元格