列表是最经常使用的 Python 数据类型,它能够做为一个方括号内的逗号分隔值出现
建立一个列表,只要把逗号分隔的不一样的数据项使用方括号括起来便可html
list1 = [1, 2, 3, 4, 5, 6, 7] list2 = [['a', 'b'], 'c'] # 建立空列表 list3 = [] list4 = list()
示例:python
list1 = [1, 2, 3, 4, 5, 6, 7] list2 = ['a', 'b', 'c'] print(list1[2 : 4]) # 读取第3到第4个数据(左开右闭) print(list1[-3]) # 从右开始读取第三个数据 print(list1[: 5]) # 读取前5个数据 print(list1[0 : -1 : 2]) # 每隔一个数据读一个数据 print(list1[:: -1]) # 倒序打印列表 print(list1 + list2) # 将list1和list2拼接起来
输出结果:数据结构
[3, 4] 5 [1, 2, 3, 4, 5] [1, 3, 5] [7, 6, 5, 4, 3, 2, 1] [1, 2, 3, 4, 5, 6, 7, 'a', 'b', 'c']
列表中的元素不只能够是字符串或数字,还能够是字典、集合或是其余列表app
list1 = [1, 2, 3, 4, 5] list2 = [2, 2, 2, 2, 2] list3 = [list1, list2] print(list3) print(list3[0][3:])
输出结果:函数
[[1, 2, 3, 4, 5], [2, 2, 2, 2, 2]] [4, 5]
函数 | 做用 |
---|---|
len(list) | 列表元素个数 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 将元组转换为列表 |
方法 | 做用 |
---|---|
list.append(obj) | 在列表末尾添加新的对象 |
list.count(obj) | 统计某个元素在列表中出现的次数 |
list.extend(seq) | 在列表末尾一次性追加另外一个序列中的多个值(用新列表扩展原来的列表) |
list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 |
list.insert(index,obj) | 将对象插入列表(经过index指定位置) |
list.pop([index=-1]) | 移除列表中的一个元素(默认最后一个元素),而且返回该元素的值 =del list[-1] |
list.remove(obj) | 移除列表中某个值的第一个匹配项 |
list.reverse() | 反向列表中元素 |
list.sort(key=None,reverse=False) | 对原列表进行排序 |
list.clear() | 清空列表 |
list.copy() | 复制列表 |
在循环列表的同时进行修改,可能致使一些问题:code
def main(): a = [1, 2, 3, 4, 5, 6, 7] for x in a: if x > 3: a.remove(x) print(a) b = [1, 2, 3, 4, 5, 6, 7] for x in b[:]: if x > 3: b.remove(x) print(b) if __name__ == '__main__': main()
输出结果:htm
[1, 2, 3, 5, 7] [1, 2, 3]
很明显,b 的循环结果才是想要的结果,a 在循环时跳过了一些元素
由于 b[:]
是 b
的一个复制,并无被修改对象
因为列表的特性,能够用它来简单模拟其余的数据结构blog
关于 Python 中的栈(stack) <- 点击查看排序
class Stack(object): def __init__(self): self.stack = list() def push(self, data): """ 进栈函数 """ self.stack.append(data) def pop(self): """ 出栈函数, """ return self.stack.pop() def gettop(self): """ 取栈顶 """ return self.stack[-1]
class Queue(object): def __init__(self): self.queue = list() def put(self, data): self.queue.append(data) def get(self): return self.queue.pop(0) def qsize(self): return len(self.queue)