列表
序列是 Python 中最基本的数据结构. 序列中的每个元素都分配一个数字 - 它的位置, 或索引, 第一个索引是 0, 第二个索引是 1, 依此类推.
Python 有 6 个序列的内置类型, 但最常见的是列表和元组.
序列都可以进行的操作包括索引, 切片, 加, 乘, 检查成员.
此外, Python 已经内置确定序列的长度以及确定最大和最小的元素的方法.
列表是最常用的 Python 数据类型, 它可以作为一个方括号内的逗号分隔值出现.
列表的数据项不需要具有相同的类型
创建一个列表, 只要把逗号分隔的不同的数据项使用方括号括起来即可
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- list = [1,2,3,4,5,6,7] #定义一个列表
- print(list[0]) #通过索引取值
- print(list[-1]) #支持倒取 - 1 表示最后一个
- list[0]=8 #通过索引修改值
- print(list)
- #输出
- 1
- 7
- [8,2,3,4,5,6,7]
给列表添加元素
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- list = [1,2,3,4,5,6,7]
- list.append(10) #在列表末尾添加元素
- print(list)
- list.insert(1,10) #指定索引位置插入元素, 把元素插入到置顶位置 比如索引号为 1 的位
- print(list)
- list1 = [9,8,7,6,5] #定义一个 list1 列表
- list.extend(list1) #扩展原列表, 参数为可迭代对象 (可以被 for 循环遍历的)
- print(list)
- #输出
- [1, 2, 3, 4, 5, 6, 7, 10]
- [1, 10, 2, 3, 4, 5, 6, 7, 10]
- [1, 10, 2, 3, 4, 5, 6, 7, 10, 9, 8, 7, 6, 5]
列表拷贝可以用 copy(), 也可以直接赋值但是建议使用 copy() 方法, 也可以用切片的方法
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- list = [1,2,3,4,5,6,7,8,9]
- a = list.copy() #拷贝, 复制, 浅拷贝
- print(a)
- b = a[:] #切片的方法
- print(b)
- #输出
- [1, 2, 3, 4, 5, 6, 7, 8, 9]
- [1, 2, 3, 4, 5, 6, 7, 8, 9]
计算元素在列表中出现了几次, 获取当前元素的索引位置, 以及 len() 函数
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- list = [1,2,3,4,5,5,5,6,7]
- a = list.count(5) #计算元素在列表中出现几次
- print(a)
- b = list.index(6,3,9) #根据值获取当前值的索引位置 从左开始, 可以在参数后加上 从第几个开始 第几个结束, 不写默认从 1 开始
- print(b)
- c = len(list) #确定列表的长度
- print(c)
- #输出
- 3
- 7
- 9
删除列表元素, 清空列表
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- list = [1,2,3,4,5,6,7,8,9,9,2]
- del list[0] #通过索引删除, 永久删除并不可以在使用其值
- print(list)
- list.pop() #通过索引删除, 但是可以把其重新赋值给一个变量, 还可以继续使用, 默认从最后往前删
- b = list.pop()
- print(b)
- list.remove(2) #根据值删除元素
- print(list)
- list.clear() #清空列表
- print(list)
- #输出
- [2, 3, 4, 5, 6, 7, 8, 9, 9, 2]
- 9
- [3, 4, 5, 6, 7, 8, 9]
- []
列表排序
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- list = [0,1,2,3,4,5,6]
- a = sorted(list) #临时排序
- print(a)
- b = sorted(list,reverse = True) #反向临时排序
- print(b)
- list.sort() #永久排序
- print(list)
- list.sort(reverse = True) #反向排序
- print(list)
- list.reverse() #反转列表, 但不是按顺序. 如果想返回需要再次调用 reverse()
- print(list)
- #输出
- [0, 1, 2, 3, 4, 5, 6]
- [6, 5, 4, 3, 2, 1, 0]
- [0, 1, 2, 3, 4, 5, 6]
- [6, 5, 4, 3, 2, 1, 0]
- [0, 1, 2, 3, 4, 5, 6]
使用 range() 函数创建列表, 对数字列表进行简单的统计计算
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- a = list(range(10)) #只会生成 0-9
- print(a)
- print(min(a)) #列表最小值
- print(max(a)) #列表最大值
- print(sum(a)) #列表总和
- #输出
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 0
- 9
- 45
and,or,in,not in 用法
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
and 只要有一个为 False 结果就为 False
- 1>2and2>3
- False
- 1<2 and 2<3
- True
- 1>2 and 2<3
- False
or 只要有一个为 True 结果就为 True
- 1>2 or 2>3
- False
- 1>2 or 2<3
- True
检查元素是否在列表中: in
- a = [1,2,3,4,5,6,6]
- 2 in a
- True
- 7 in a
- False
检查元素是否不在列表中: not in
- a = [1,2,3,4,5,6,6]
- 2 not in a
- False
- 7 not in a
- True
求模运算符
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- 4%3
- 1
- 5%3
- 2
- 6%3
- 0
- 7%3
- 2
- """ 求模运算不会指出一个数是另一个数的多少倍, 而只是指出余数是多少
- if else 语句
- 如果 if 语句结果为 True 则运行 if 下面的程序否则运行 else 下面的程序
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- """如果一个数被另一个数整除, 余数为 0, 因此求模运算符将返回 0, 可以利用这点来判断一个数是奇数还是偶数"""
- a = 7
- if a % 2 == 0:
- print("这是一个偶数")
- else:
- print("这是一个奇数")
- if elif else 语句如果 if 语句结果为 True 则运行 if 下面的程序如果 elif 语句结果为 True 则运行 elif 下面的程序否则运行 else 下面的程序
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- """这是一个判断学生成绩评分的 if 语句"""
- temp =int(input('输入一个分数:'))
- if (60 <= temp < 80):
- print("C")
- elif (80 <= temp < 90):
- print("B")
- elif (90 <= temp <= 100):
- print("A")
- else:
- print("不及格")
列表解析式 a = [i for i in range(10)]
列表生成式
写列表生成式时, 把要生成的元素放到前面, 后面跟 for 循环就可以把 list 创建起来
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- a = [x*x for x in range(10) ]
- print(a)
- #for 循环后面还可以加上 if 判断
- a = [x*x for x in range(10) if x%2==0]
- print(a)
- #还可以使用两层循环
- a = [m+n for m in "ABC" for n in "XYZ"]
- print(a)
- #输出
- [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
- [0, 4, 16, 36, 64]
- ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
切片
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- a = [1,2,3,4,5,6,7,8,9]
- print(a[0:3]) #显示前三个元素
- print(a[2:6]) #显示从 3 到第 6 个元素
- print(a[-3:]) #显示最后三个元素
- #输出
- [1, 2, 3]
- [3, 4, 5, 6]
- [7, 8, 9]
来源: http://www.bubuko.com/infodetail-2752609.html