Skip to main content

02.数据结构

1 列表(list)

列表是序列数据类型之一,列表类似PHP中的数组(无限维),不过这个数组的下标只能是数字。但对于列表的操作来看,列表更象是个对象。

1.1 增加

fooList = [1, 2, 3]
fooList.append(4) # [1, 2, 3, 4] <--- 从尾标插入单个
fooList += [5, 6] # [..., 4, 5, 6] <--- 从尾标插入
fooList[len(fooList):] = [7, 8] # [..., 6, 7, 8] <--- 从尾标插入
fooList = fooList + [9, 10] # [..., 8, 9, 10] <--- 从尾标插入
#以上3条反过来就是从头开始增加

fooList = fooList.extend(11, 12) # [..., 10, 11, 12] <--- 从尾标插入

list.insert()

fooList.insert(3, 3.5) # [1, 2, 3, 3.5 ...] <--- 指定位置插入一个元素

1.2 删除

fooList = [1, 2, 3]
fooList.remove(1) # [1, 2] <--- 删除指定单个元素的值,相同的则从右到左,右边优先,没有则抛出异常
fooList.pop() # 3 <-- 删除最后一个并返回
fooList.pop(1) # 2 <--- 删除下标1 并返回
fooList.clean() # <--- 清空
del fooList[1:3] # [1] <--- 切片删除
del foolist # <--- 删除整个变量

1.3 查(切片)

footList = [1, 2, 3]
fooList.index(2) # 1 <--- 想找元素为2的下标,没有则valueError 异常
fooList.count(2) # 1 <--- 合计元素为2的数量

1.4 修改

fooList = [1, 2, 3]
fooList[0] = 1.5 # <--- [1.5, 2, 3]

2 元组(tuple)

元组是序列集合类型之一。声明: x = 1, 'foo', [1, 2], 1+2j,当中的元素可以任意一种数据类型,元组和列很像,区别在于元组不能修改其中元素


x = 1, 2, 3 # <--- (1, 2, 3)
foo, bar, bux = x # <--- foo = 1 bar = 2, bux = 3

3 集合(sets)

集合是一个无序的、单一不重复子元素的无序集。主要用于消除重复的元素,也可以用在计算上,如: 联合,交集,差集和对称差等合集运算上。

fooSet = set('1233') # {'1', '2', '3'} <--- 声明集合
barSet = set('345')
fooSet - barSet # {'1', '2'} <--- fooSet比较barSet的差集
fooSet | barSet # {'1', '2', '3', '5', '4'} <--- 并集
fooSet & barSet # {'3'} <--- 交集
fooSet ^ barSet # {'1', '5', '2', '4'} <--- 2边差集的合集

4 字典(Dict)

字典就是数组(可以多维),就是键名也要自己写。

fooDict = {'foo': 1, 'bar': 2} # <--- 声明
fooDict['buz'] = 3 # <--- 新增或修改
fooDict['buz'] # 3 <--- 取值
del fooDict['bux'] # <--- 删除
'bux' in fooDict # False <--- 是否存在
list(fooDict) # ['foo', 'bar'] <--- 查看键名合集

>>> for k, v in fooDict.items(): # <--- 遍历
... print(k, v)
...
foo 1
bar 2