python提供了很多数据结构,不过其很多操作都是朴素操作,速度慢时间复杂度参见:https://wiki.python.org/moin/TimeComplexity
可遍历(for): list, string, 判断元素是否存在(in): list, string, tuple 合并: list, string 元素个数(len()) 元素和(sum())
string(字符串)
word = ‘banana‘ 特点: 不可变的列表
list(列表)
a = [1, ‘abc‘, [a, b, c]] 特点: 列表有顺序 操作: 查询: a[l:r](返回该区间的列表) a[l:r:k](返回[l, r-1]区间中 步长为k的元素列表) 插入: a.append(b)(尾部插入值b) 删除: del a[i](删除下标为i或者一段区间的元素) 比较:(以字典序来比较,返回True or False) a == b a < b 分片操作: a[l:r] = b (将[l,r-1]区间序列替换为序列b 长度不必相同) ADD: 列表方法:(一般是对于列表,字符串等适用的方法) a = list(); 1> a.append(x) 在末尾添加元素x 2> a.cound(x) 统计元素x出现次数 3> a.extend(b) 在末尾添加列表b,相当于a = a + b 4> a.index(x) 返回第一个元素为x的下标 5> a.insert(loc, x) 在loc下标处加入元素x 6> a.pop(loc) 删除下标为loc的元素,若无loc默认最后一个 7> a.remove(x) 删除第一个值为x的元素 8> a.reverse() 将列表a反向存放 9> a.sort() 将列表a进行排序 此外sort(key, reverse)可以对排序提供比较函数和是否反向排序 如 >>>a = [‘aa‘, ‘b‘, ‘ccc‘] >>>a.sort(key = len, reverse = True) #按字符串长度比较 key为比较的对象,默认从小到大排序,若从大到小只需reverse = True
dict(字典)
dic = {} dic = {‘one‘: ‘uno‘, ‘two‘: ‘dos‘, ‘three‘: ‘tres‘} 特点: 每一项为一个键值对,每个键唯一 操作: 查询: dic[‘one‘](返回指定键的键值) dic.keys()(返回dic所有键的列表) dic.values()(返回dic所有键值的列表) dic.items()(返回dic所有的键值对(二元组表示)的列表) 插入: dic[a] = b(插入(a,b)的键值对) 删除: dic.pop(i,j)(删除以i为下标的键值对 若不存在返回j) dic.clear()(清空字典) del dic[b](删除以b为键的键值对)
tuple(元组):
t = (1,)(区别出表示元组而非数字) t = (1, ‘a‘, [1,2]) 特点:不可变 操作: 查询: dic[l:r](返回l到r-1的元组) dic.index(b)(返回值为b的下标) 用法: a, b = b, a (a b交换赋值) (1, 2) < (2, 3) (类似字典序方法比较大小)
set(集合):
s = {1,} #区别出这是集合而非字典 s = set(‘spam‘) s = set([‘a‘, ‘b‘]) 特点: 无重复 操作: 查询: a in s (返回a是否存在于s集合) s|t s.union(t)(返回s和t并集) s&t s.intersection(t)(返回s和t交集) s-t s.difference(t)(返回s中有t没有的元素集合) 插入: s.add(a)(插入元素a) 删除: s.pop()(删除随机一元素) s.remove(a)(删除元素a) s.clear()(清空集合s)
时间: 2024-10-25 22:47:34