Python 列表和字典的常见操作
list []
list是一种有序的集合,可以随时添加和删除其中的元素。 形式和特性都像C语言的数组
赋值修改及取值
# list 赋值 |
增减元素
l = ['John', 'Bob', 'Tracy'] |
拷贝(浅拷贝, 深拷贝)
l = [['a'], ['b', 'c'], ['d', 'e', 'f']] |
tuple ()
理解为list的常量形式即可, 赋值后就不可增减和修改
# 赋值 |
dict {}
dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
赋值及取值
# dict 赋值 |
增减及修改字典
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} |
拷贝(浅拷贝, 深拷贝)
d = {0: [1,2,3], 1:{'k1': 'v1', 'k2': 'v2'}} |
set {}
set([])
set即集合, 是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
集合不可放入可变对象, 如list(报unhashable type
的错)
# 赋值 |
collections模块的使用
numedtuple 给tuple命名
import collections |
deque 双向队列
英文全称 Double-ended queue
, 特性近似于双向链表, 适用于队列和栈
import collections |
defaultdict 带默认键值的dict
使用dict
时,如果引用的Key不存在,就会抛出KeyError
。如果希望key不存在时,返回一个默认值,就可以用defaultdict
# 普通字典 |
OrderedDict 可排序的dict
# 普通字典, key是无需的 |
实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最早添加的Key
from collections import OrderedDict |
Counter 计数类
Counter
实际上是dict
的一个子类, 是一个简单的计数器.
应用一: 多重集合(显示元素个数)
import collections |
应用二: 统计最常出现的元素
list("hello")) A = collections.Counter( |
高阶应用
list 加入索引值
'Spring', 'Summer', 'Fall', 'Winter'] seasons = [ |
list的压缩和解压, 以及转换为dict
1, 2, 3]; b = ['a', 'b', 'c'] a = [ |
list相邻元素压缩器, 升维
1, 2, 3, 4, 5, 6] a = [ |
list展开, 降维
# 推荐使用 itertools.chain.from_iterable |
快速查找list的若干最值
import heapq, random |
dict和list互换
# dict->list |
dict内key和value互换
# using zip |
快速生成规律性字典
2 for x in range(5)} {x: x ** |
字符串与列表字典的互换
# 字符串->列表 (去掉引号) |
参考和资料
- 廖雪峰的官方网站之python教程
- 30 Python Language Features and Tricks You May Not Know About
- 怎样合并字典最符合Python语言习惯?
原创于 DRA&PHO