Python's Memo(1)

基础数据结构篇

Python 的备忘录–基础数据结构篇

Python基础数据结构主要有列表(list),元组(tuple),词典(dict)以及集合(set)

快速记忆的方法:

  • 列表 [ ]
  • 元组 ( )
  • 词典 { : }
  • 集合 [( )]

list

list中的元素可以是不同类型的.

1
2
3
使用len()来获取列表长度
使用[]下标来获取元素
允许传入负值来倒序遍历

操作list:

1
2
3
4
5
6
7
append(ele) # push一个元素
pop([index]) # 删除一个元素
insert(index, ele) # 插入一个元素
extend() # 拓展list
sort()
reverse() # 排序
...

tuple

tuple类似列表,但初始化后便不可再更改.

MEMO 定义一个tuple时,会遇到这样的歧义:

1
2
tp = () // 声明了一个空的tuple
tp = (1) //是声明了一个包含1tuple,还是一个长度为1tuple ??

因此,在遇到这样的情况时,使用长度加上逗号的方式来声明.

MEMO 只有tuple本身的元素不会发生变化.

1
如果在tuple中插入了一个list,list中的元素是可以变化的.

dict

dict就类似于其他语言的Map,即键(Key)值(Value)对,
字典的查找速度很快,原因是dict的Key是经过了Hash计算的.
因此,Key是不可变的对象.

1
使用 'Key' in dict 来判断是否存在Key.

操作dict

1
2
3
4
5
6
7
8
d = {"name":"J", "age":"19"}
dd = d.copy() # 深拷贝,内存地址变化
d.clear() # 清空
dd.items() # 返回键值对对象,可迭代使用
dd.get("name"[, default]) # 获取值, 不存在返回default的值.
dd.keys()
dd.values() # 兄弟方法,分别得到键和值
dd.update() # 更新字典,传入可迭代的对象(字典),用来拓展或覆盖旧值.

set

set是一组不包含重复元素的集合们需要提供一个list作为输入.
list中存储的元素是无序的.

操作set

1
2
3
4
5
6
s = set([1,2,3,4,5])
s.add(4)
s # { 1,2,3,4,5 }
s.add(6)
s # { 1,2,3,4,5,6 }
s.remove(ele) # 删除元素

MEMO Set相当于是数学中的集合,可进行求交集\并集…

1
2
3
4
s1 = set([1,2,3])
s2 = set([2,3,4])
s1 & s2 # { 2,3 }
s1 | s2 # { 1,2,3,4 }