第五天 python中列表

关于python的列表基础使用,环境使用的是python3.8.6 shell IDLE

欢迎大家指出我的问题,你我共同进步

  1. 列表的创建和访问列表
    列表的创建时通过中括号来实现的[]
>>> [1,2,3,4]
[1, 2, 3, 4]

通过for循环来遍历列表的值

s = [1,2,3,4,'thisis']
for i in s:
	print(i)

也可以通过索引 的方式进行访问列表的内容

s = [1,2,3,4,'thisis']
s[1] #访问到的值的就是列表中的2,因为的列表的索引是从0,1,2,3以此类推的
s[-1] #访问的就是最后一个的值thisis,-2就是倒数第二的值4
s[0:2] #访问到就是从0开始到2结束,不包含2,所以值就是1,2
s[0:-1] #访问列表中的全部值
s[:] #也是访问列表的全部值
s[:2] #到2索引就结束,和s[0:2]是一样的结果是一样
s[0:5:2] #从0开始到5结束,步长为2
s[::-2] #倒过来的步长为-2
  1. 关于列表的增删
    2.1增加值
    通过_.append()进行增加值到列表的末尾中,但是只能添加一个值
    通过_.extend可以添加多个数值到末尾即可
    还可以通过切片的方法进行添加值到列表中
#只能增加一个到列表的末尾中
que = ['爱情','亲情']
que.append('不怀好意的男闺蜜')
que[len(que):] = ['老子不在意了'] #切片的方法
#添加多个值到列表的末尾
que.extend(['可怕的女闺蜜','虚情假意的亲戚'])
#通过切片进行添加值到列表中
s = [1,2,3,4,5]
s[len(s):] = [6,7,8] #直接在5的后面添加6,7,8
#通过索引添加值到指定的地方
q = [1,3,4,5]
q.insert(1,2)	#结果就是[1, 2, 3, 4, 5]

love = ['我','你']
love.insert(1,'不爱') #结果就是['我', '不爱', '你']

2.2 删除值
_.remove()就是删除指定的值
注意:当你删除的值不在列表中是会进行报错的,ValueError: list.remove(x): x not in list.

通过索引下标删除指定的列表值 _.pop()

_.clear() 来进行清空列表的内容也是可以的,注意是清空列表,会变成空列表

love = ['我','你']
love.remove('你') #此时的结果就剩下我了,你已经被删除了

que = ['爱情', '亲情', '友情', '不怀好意的男闺蜜', '可怕的女闺蜜',]
que.pop(4) #结果就是删除了不怀好意的男闺蜜

que.clear()
  1. 使用sort进行排序列表大小,还有reveres可以反转列表,也就是倒序输出
num = [3,45,3,215,25]
num.sort() #结果[3, 3, 25, 45, 215]
num1.reverse() #倒序输出

4.通过count找出列表值的索引,或者通过index也可以

num = ['人间美好','适当抛弃部分','你会更快乐']
num.count("你会更快乐") #结果输出为2

num.index("人间美好") #结果就是0

5.列表的拷贝,浅拷贝
通过copy进行使用

num = ['人间美好','适当抛弃部分','你会更快乐']
s = num.copy()
#或者可以通过切片进行拷贝
s = num[:]

6.关于列表的拼接+和重复值的使用*

 s = [1,2,3,4]
t = [5,6,7,8]
s + t
[1, 2, 3, 4, 5, 6, 7, 8]
s * 2
[1, 2, 3, 4, 1, 2, 3, 4]

nu = [1,2,3,4,5]
for i in range(len(nu)):
	nu[i] = nu[i] * 2
	#结果是[2, 4, 6, 8, 10]

7.列表的嵌套
也称二维列表

q = [[1,2,3],
	[4,5,6],
	[7,8,9]]
#也可以写成这样
q = [[1,2,3],[4,5,6],[7,8,9]] #效果都是一样的

#试着使用for循环来遍历列表q
for i in q:
	for x in i:
		print(x)

#使用for循环来打印三个都是0的二维列表
 for i in range(3):
	a[i] = [0] * 3

a
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

7.1 查找嵌套列表的值

q = [[1,2,3],
	[4,5,6],
	[7,8,9]]
q[2] #结果[7, 8, 9]
q[0][2] #结果是3
q[2][2] #结果9
  1. 深拷贝的处理
a = [[1,2,3],[4,5,6],[7,8,9]]
import copy
s = copy.deepcopy(a)	#深拷贝
a[0][0] = 111	#只会改变a的列表值,并不会改变s的值,这就是深拷贝作用.当这里使用的浅拷贝的时候,那么将会改变3行数据.
a
[[111, 2, 3], [4, 5, 6], [7, 8, 9]]
s
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

9.列表的推导式
基于c的运行,所以运行起来是更加快的,提高至少一倍的,而且还简洁.但是东西总是有利有弊的,看起来也是更加复杂的,对我们这些新手也还是不友好的.阅读代码也是不方便的.

#例子1
nu = [1,2,3,4,5]
nu = [i * 2 for i in nu]
nu
[2, 4, 6, 8, 10]
#例子2
 a = [i for i in range(10)]
 a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#例子3
s = []
for i in range(10):
	s.append(i+1)

s
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#例子4
y = [c * 2 for c in "再坚持一下"]
y
['再再', '坚坚', '持持', '一一', '下下']




#例子5 去除列表中索引是1的值
c = [[1,2,3,],
	[4,5,6],
	[7,8,9]]
c2 = [s[1] for s in c]
c2
[2, 5, 8]
#例子6 取出列表对角的值
dig = [c[i][i] for i in  range(len(c))]
dig
[1, 5, 9]

10.列表推导式的嵌套
可以嵌套if的条件判断的

#例子1
ev = [i for i in range(10) if i % 2 == 0]
ev
[0, 2, 4, 6, 8]

#例子2 找出单词开头是o的字母
word =["one","two","omg","on","in","false"]
oword = [s for s in word if s[0] == "o"]
oword
['one', 'omg', 'on']

#例子3 把二维列表变成一维的列表
ew = [[1,2,3],[4,5,6],[7,8,9]]
fle = [i for row in ew for i in row]
fle
[1, 2, 3, 4, 5, 6, 7, 8, 9]

#循环的做法
fle = []
for row in ew:
	for i in row:
		fle.append(i)

fle
[1, 2, 3, 4, 5, 6, 7, 8, 9]

#例子4
[x + y for x in "zjcyx" for  y in "再坚持一下"]


_ = []
for x in "zjcyx":
	for y in "再坚持一下":
		_.append(x + y)

11.更加牛逼的推导式,同时更加难以读懂

#例子1
[[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]]

#使用循环来做
_ = []
for x in range(10):
	if x % 2 == 0:
		for y in range(10):
			if y % 3 == 0:
				_.append([x,y])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值