定义:列表是一组有序的集合对象类型,可以是字符、数字、字符串甚至其他列表。之所以有序,是因为列表是通过数字下标进行索引的
names = ['old_driver','rain','jack','shanshan','peiqi','black_girl']
列表常量和操作
操作 | 说明 | |
读取元素 | names[i];names[i][j]: 子列表中的元素读取 names[i:j:k]:k代表步长,默认步长是1,所以一般不写 | 步长step概念:简单说就是每隔k-1个元素取一次,用数学方 式进行表达,依次取对象names[i+ak],其中a为(0,1,2...n),并且i+ak<j; |
索引 | names.index(obj) | |
修改 | names[i] = ['new obj'] | 注意:列表元素不能赋值,只能添加or修改。修改已存在的索引,不存在的索引将报错。(与字典不同,字典若key不存在则等同于添加) |
插入(某个元素前插入) | names.insert(i,new obj) | |
插入(列表最后插入) | names.append(obj) names.extend(sequence) | 注意两者区别,append是在列表最后添加新对象(数字或者字符)或者子列表; extend添加单个对象时必须是string格式(得用引号),不能添加数字.如果是列表则等同于合并的效果,而不是添加子列表。 |
插入子列表 | names.insert(i,['new obj1','new obj2']) | |
分片names[i:j] | 下标范围[i:j),也即[i:j-1],‘顾头不顾尾’ | |
合并 | names = names + names2 names = names2 + names | names2列表合并后赋值给names列表(相当于names的对 象追加到了names后面),注意左边两种写法合并之后的对 象顺序是不一样的 |
重复 | names * 2 | 重复列表中的对象 |
names.sort() | 列表排序,列表中的对象必须是同一数据类型 | |
删除 | names.remove(obj) del names[i];del names[i:j] names.pop() | 如果有重复的对象,只删除匹配到的第一个对象元素 names.pop():删除并返回最后一个对象 ;names.pop(1):删除并返回对应索引的对象 |
names.count(obj) | 统计列表中相同对象的个数 | |
names.reverse() | 翻转列表顺序 | |
列表长度 | len(names) | |
清空列表 | names.clear() del names[:] del names | clear()函数效果与del names[:]相同,都是清空元素。不同的是第三个del names等于删除列表定义,此列表将不存在 |
列表元素去重 | names = list(set(names)) names.sort() | 利用集合set特性,分两步即可. |