python--列表

列表

切片

>>> qmc = [1,2,3,4,5,6]
>>> qmc[::2]
[1, 3, 5]
>>> qmc[::-2]
[6, 4, 2]
>>> qmc[::-1]
[6, 5, 4, 3, 2, 1]

append():向列表末尾附加一个元素。

>>> member = ['小甲鱼','小布丁','黑夜']
>>> member.append('福禄娃娃')
>>> member
['小甲鱼', '小布丁', '黑夜', '福禄娃娃']

extend(): 把一个列表(可迭代对象)扩展到另一个列表末尾。
可迭代对象:我们已经知道可以对listtupledictsetstr等类型的数据使用forin…的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代
把可以通过for…in…这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象(Iterable)

>>> member = ['小甲鱼', '小布丁', '黑夜', '福禄娃娃']
>>> member.extend([1,2])
>>> member
['小甲鱼', '小布丁', '黑夜', '福禄娃娃', 1, 2]

利用切片添加元素

>>> s = [1,2,3,4,5]
>>> s[len(s):] = [7]           #向列表末尾添加一个元素
>>> s
[1, 2, 3, 4, 5, 7]
>>> s[len(s):] = [6,8,9]       #向列表末尾添加多个元素
>>> s
[1, 2, 3, 4, 5, 7, 6, 8, 9]

insert():把一个元素插入指定位置。

>>> member.insert(0,'牡丹')
>>> member
['牡丹', '小甲鱼', '小布丁', '黑夜', '福禄娃娃', 1, 2]
>>> member.insert(len(s):'老王')           #把一个元素插入末尾
>>> member
['牡丹', '小甲鱼', '小布丁', '黑夜', '福禄娃娃', 1, 2,'老王']

remove():删除某一元素。(如果列表中存在多个匹配元素,只删除第一个)

>>> member.remove('小甲鱼')        #删除元素'小甲鱼'
>>> member
['牡丹', '小布丁', '黑夜', '福禄娃娃', 1, 2]

del:不是函数、方法,是语句。可删除某一位置的元素或删除整个列表。

>>> del member[0]                     #删除member列表的第一个元素
>>> member
['小布丁', '黑夜', '福禄娃娃', 1, 2]
>>> del member                         #删除列表member

pop():从列表中取出一个元素并返回。

>>> member = ['小布丁', '黑夜', '福禄娃娃', 1, 2]
>>> member.pop()                     #默认删除最后一个
2
>>> member
['小布丁', '黑夜', '福禄娃娃', 1]


>>> name = member.pop()             #可以把取出来的值赋值给一个变量,不回显
>>> name                            #查看变量name
1
>>> member
['小布丁', '黑夜', '福禄娃娃']


>>> member.pop(0)                  #也可以删除指定位置的元素
'小布丁'
>>> member
['黑夜', '福禄娃娃']

clear():清空列表。

>>> member.clear()
>>> member
[]

#调换两个元素的位置
>>> temp = member[1]        #把member[1]的值暂存到temp
>>> member[1] = member[0]   #把member[0]的值赋值给member[1]
>>> member
['牡丹', '牡丹', '小布丁', '黑夜', '福禄娃娃', 1, 2]
>>> member[0] = temp
>>> member
['小甲鱼', '牡丹', '小布丁', '黑夜', '福禄娃娃', 1, 2]


>>> member[4] = '钢铁侠'                     #改变某个元素的值
>>> member
['小甲鱼', '牡丹', '小布丁', '黑夜', '钢铁侠', 1, 2]


>>> member[3:] = ['张三','李四','王五']        #改变从第四个开始以后的元素
>>> member
['小甲鱼', '牡丹', '小布丁', '张三','李四','王五']

sort():从小到大排序。
reverse():把列表里的元素倒序。

>>> number = [6,9,3,1,5,7,4,0,2,8]
>>> number.sort()
>>> number
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> number.reverse()
>>> number
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> number = [6,9,3,1,5,7,4,0,2,8]
>>> number.sort(reverse = True)
>>> number
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

count():查看一个元素出现的次数。
index(x,start,end):查看元素的索引值。若该元素有多个,则只显示第一个该元素的索引值。

>>> member[0]       #查看第一个元素的值
'牡丹'

>>> member = ['牡丹','小甲鱼','黑夜','迷途','福禄娃娃','小甲鱼','小甲鱼']
>>> member.count('小甲鱼')
3

>>> member.index('迷途')
3

>>> member.index('小甲鱼',2,6)              #查看从索引号1到6(不包含6)的'小甲鱼'的索引号
5

>>> member[member.index('迷途')] = '张三'               #把'迷途'替换为'张三'
>>> member
['小甲鱼', '牡丹', '黑夜', '张三', '福禄娃娃', '小甲鱼', '小甲鱼']

列表分片(Slice):获取多个元素,组成一个临时列表并显示。

>>> member = ['小甲鱼','牡丹','黑夜','迷途','福禄娃娃']
>>> member[1:3]                  #显示位置在1和2的元素
['牡丹', '黑夜']
>>> member
['小甲鱼', '牡丹', '黑夜', '迷途', '福禄娃娃']


>>> member[:6]                  #从第一个位置开始,0可省略不写
['小甲鱼', '牡丹', '黑夜', '迷途', '福禄娃娃']


>>> member[1:]                  #从第二个取到最后一个
['牡丹', '黑夜', '迷途', '福禄娃娃']


>>> member[:]                   #获取整个列表的拷贝
['小甲鱼', '牡丹', '黑夜', '迷途', '福禄娃娃']


>>> member2 = member           #当member2改变时,member也会改变
>>> member2
['小甲鱼', '牡丹', '黑夜', '迷途', '福禄娃娃']

>>> member3 = member[:]       #当member3改变时,不影响member,浅拷贝
>>> member3
['小甲鱼', '牡丹', '黑夜', '迷途', '福禄娃娃']

>>> member4 = member.copy()   #当member4改变时,不影响member,浅拷贝
>>> member4
['小甲鱼', '牡丹', '黑夜', '迷途', '福禄娃娃']


>>> import copy
>>> x = [[1,2,3],[4,5,6],[7,8,9]]
>>> y = copy.deepcopy(x)             #深拷贝,用于嵌套列表
>>> x[1][1] = 0
>>> x
[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
>>> y
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

二维列表

>>> matrix = [[1,2,3],
	      	  [4,5,6],
	          [7,8,9]]
>>> matrix
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> for i in matrix:
		for each in i:
			print(each)

		
1
2
3
4
5
6
7
8
9
>>> for i in matrix:
		for each in i:
			print(each,end='')
		print()

	
123
456
789
>>> matrix[0]
[1, 2, 3]
>>> matrix[0][0]
1
>>> matrix[1][1]
5
>>> matrix[2][2]
9
>>> A = [0] * 3
>>> A
[0, 0, 0]
>>> for i in range(3):
		A[i] = [0] * 3


>>> A
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> B = [[0] * 3] * 3
>>> B
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> A[1][1] = 1
>>> A
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
>>> B[1][1] = 1
>>> B
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
>>> x = 'FishC'
>>> y = 'FishC'
>>> x is y
True                              #x,y的值存储在同一个位置
>>> m = [1,2,3]
>>> n = [1,2,3]
>>> m is n
False                             #m,n的值存储在不同的位置
>>> A[0] is A[1]
False                             #A的三个子列表存储在三个不同位置
>>> A[1] is A[2]
False
>>> B[0] is B[1]
True                              #B的三个子列表指向同一个位置
>>> B[1] is B[2]
True

列表推导式

>>> oho = [1,2,3,4,5]
>>> oho = [i * 2 for i in oho]
>>> oho
[2, 4, 6, 8, 10]
>>> x = [i for i in range(10)]
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x = [i + 1 for i in range(10)]
>>> x
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> y = [i * 2 for i in 'FishC']
>>> y
['FF', 'ii', 'ss', 'hh', 'CC']
>>> matrix = [[1,2,3],
	      [4,5,6],
	      [7,8,9]]
>>> m = [n[1] for n in matrix]
>>> m
[2, 5, 8]
>>> z = [matrix[i][i] for i in range(len(matrix))]
>>> z
[1, 5, 9]
>>> s = [[0] * 3 for i in range(3)]
>>> s
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> even = [i for i in range(10) if i % 2 == 0]
>>> even
[0, 2, 4, 6, 8]
>>> words = ['Great','FishC','Beilliant','Excellent','Fantistic']
>>> fwords = [i for i in words if i[0] == 'F']
>>> fwords
['FishC', 'Fantistic']
>>> maritx = [[1,2,3],[4,5,6],[7,8,9]]
>>> flatten = [m for n in matrix for m in n]        #降维展开
>>> flatten
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [x + y for x in 'abc' for y in 'ABC']          #笛卡尔积
['aA', 'aB', 'aC', 'bA', 'bB', 'bC', 'cA', 'cB', 'cC']
>>> [[x,y] for x in range(10) if x % 2 == 0 for y in range(10) if y % 3 ==0]
[[0, 0], [0, 3], [0, 6], [0, 9], [2, 0], [2, 3], [2, 6], [2, 9], [4, 0], [4, 3], [4, 6], [4, 9], [6, 0], [6, 3], [6, 6], [6, 9], [8, 0], [8, 3], [8, 6], [8, 9]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅超超i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值