Python零基础入门自学笔记
参考教程【Python教程】《零基础入门学习Python》最新版@B站@鱼C-小甲鱼
本文记录的主要是Python中列表的使用。
列表是可变的,字符串是不可用的
0. 创建列表创建一个列表:用中括号[ ]括起来
alist = [1,2,3,4,5,'上山打老虎']1. 访问列表
逐个访问
for each in alist: print(each)
访问某个元素
alist[5] #上山打老虎 alist[-1] #最后一个元素 alist[-2] #倒数第二个元素
列表长度
length = len(alist)2. 列表切片
含左不含右
alist[0:3] #[1,2,3] alist[3:6] #[4,5,'上山打老虎']
冒号省略前后
alist[:3] #[1,2,3] alist[3:] #[4,5,'上山打老虎'] alist[:] #输出整个列表
跨度输出
alist[0:6:2] #[1, 3, 5] alist[::2] #[1, 3, 5] alist[::-2] #['上山打老虎', 4, 2] alist[::-1] #倒序输出 ['上山打老虎', 5, 4, 3, 2, 1]3. 列表使用 增
alist.append(6) # append() 添加一个 alist.extend([7,8,9]) # extend() 添加可迭代对象 alist[len(alist):] = [10] # 最后一个后面添加 alist[len(alist):] = [11,12,13] alist.insert(0,0) # 插入(位置,参数) alist.insert(len(alist),14)删
alist.remove('上山打老虎') #删除第一个匹配的指定元素,不存在则报错 alist.pop(0) #删除第0个元素 alist.clear() #清空 #[]改
nums = [3,1,4,1,5,9,2,6] nums[len(nums)-1] = 7 # 如果是字符串的话[''] nums.sort() # 从小到大 排序 nums.reverse() # 原地反转 nums.sort(reverse=True) # 从大到小 排序查
nums.count(1) # 查找3出现的次数 nums.index(9) # 查找元素9的索引值,第一次出现的 nums[nums.index(9)] = 8 # 把元素9改为8,第一个拷
- 浅拷贝
nums_copy1 = nums.copy() #拷贝整个列表内容,不仅是指向 nums_copy2 = nums[:] #修改nums,nums_copy1/2不随之改
import copy #二维列表拷贝要调用 x = [[1,2,3],[4,5,6],[7,8,9]] y = copy.copy(x) # 浅拷贝 x[1][1] = 0 x # [[1,2,3],[4,0,6],[7,8,9]] y # [[1,2,3],[4,0,6],[7,8,9]]
- 深拷贝
将应用对象一并拷贝
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]]4. 列表运算 加
s = [1,2,3] t = [4,5,6] s + t # [1,2,3,4,5,6]乘
重复引用
s = [1,2,3] s * 3 # [1,2,3,1,2,3,1,2,3]5. 列表嵌套 创建
matrix = [[1,2,3],[4,5,6],[7,8,9]] matrix = [[1,2,3], [4,5,6], [7,8,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]]访问
for line in matrix: for each in line: print(each,end = ' ') print() ''' 1 2 3 4 5 6 7 8 9 '''
matrix[0] # [1,2,3] matrix[1][1] # 56. 列表推导式 for in
[expression for target in iterable]
比使用for循环要快一些,for循环是逐个修改。
列表推导式,是创建一个新列表,再赋值回原列表。
a = [1,2,3,4,5] a = [i * 2 for i in a] #每个元素都乘2 #[2,4,6,8,10]
b = [i * 2 for i in 'Hello'] b #['HH', 'ee', 'll', 'll', 'oo']
#ord() code = [ord(i) for i in 'Hello'] code #[72, 101, 108, 108, 111]
matrix = [[1,2,3], [4,5,6], [7,8,9]] col2 = [row[1] for row in matrix] #col2 = [2,5,8] diag = [matrix[i][i] for i in range(len(matrix))] #diag = [1,5,9]
s = [[0] * 3 for i in range(3)] #s #[[0,0,0],[0,0,0],[0,0,0]] s[1][1] = 1 #s #[[0,0,0],[0,1,0],[0,0,0]]for in if
even = [i + 1 for i in range(10) if i % 2 == 0] #even #[1,3,5,7,9]for in for in …嵌套的
嵌套的内层循环放到后面的
matrix = [[1,2,3], [4,5,6], [7,8,9]] flatten = [col for row in matrix for col in row] #展开 #flatten = [1,2,3,4,5,6,7,8,9]for in if … for in if…
[[x,y] for x in range(10) if x % 2 == 0 for y in range(10) if y % 3 == 0]is
检验两个地址是否是同一个,
字符串固定地址,是同样的,
列表是开辟不同的地址,False
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)