Python基本数据结构
Python是动态语言
list:类似数组,有序集合
创建:L = ['Michael', 100, True],可以在一个list中包含各种数据
访问:按索引访问,如L[0];可倒序访问,如L[-1]表示访问list最后一个元素(注意越界问题)
添加新元素:append()方法,追加元素到list末尾;如:L.append('Lisa')
insert()方法,添加元素到指定位置;如:L.insert(0,'Lisa'),把‘Lisa’添加到索引为0的位置上
删除元素:pop()方法,无参数时,删掉list的最后一个元素;如L.pop(),会打印出true
有参数时,删掉对应元素;如L.pop(1),则删掉索引为1的元素
替换元素:直接赋值;如L[0]='Lisa'
tuple:有序列表,中文翻译为元组,一旦创建完毕不能修改
创建: t = ('Adam', 'Lisa', 'Bart')
获取tuple元素的方式与list相同
“可变”tuple:tuple中含有可变元素,
如 t = ('a', 'b', ['A', 'B'])
L = t[2]
L[0] = 'X'
L[1] = 'Y'
此时tuple改变
表面上看,tuple的元素确实变了,但其实变的不是 tuple 的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的
dict:含key和value,与数组类似,key值不可重复,key-value对没有顺序,key元素不可变
创建:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
访问:可以简单地使用 d[key] 的形式来查找对应的 value,如d['Adam'];
判断key是否存在:if ‘Adam’ in d:……
使用get()方法:d.get('Adam'),如果key不存在则返回none
for循环遍历
更新:d['Paul'] = 72,如果key存在则覆盖
set:持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
创建:调用 set() 并传入一个 list,list的元素将作为set的元素:s=set([1, 2, 3, 4])
访问:set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中。 'Bart' in s
for循环实现遍历 for name in s: ... print name
添加:add()方法,如s.add(4);如果添加内容已存在,不会报错,不会继续添加
删除:remove()方法,如s.remove(4);如果删除内容不存在,则报错,所以删除前进行判断:
if name in s: s.remove(name)