列表的切片与它的好兄弟

本次分享的内容思维导图如下:



二维列表的裁剪python python二维列表切片_python

主要内容

<如果需要详细的思维导入内容,请回复 py01 即可获得>

创建数值列表

range()函数

使用range()可以生成一系列的数字。

  • 注意生成的数字是前闭后开(1,5):1,2,3,4
  • 不包含最后一个数字
  • range(1,11,2): 1 开始的数据,11 截至数据,2 步长

创建数字列表

可以使用list()来创建数字列表

简单的统计数字列表函数

  • min
  • max
  • sum
for value in range(1,5):
    print(value)

numbers = list(range(1,6))
print(numbers)

numbers = list(range(2,11,2))
print(numbers)

# 生成一个平方数据
squares = []
for value in range(1,11):
    square = value**2
    squares.append(square)
print(squares)

# 简单的统计数字列表函数
print(min(squares))
print(max(squares))
print(sum(squares))

# 列表推导
squares = [value ** 2 for value in range(1,11)]
print(squares)

1
2
3
4
[1, 2, 3, 4, 5]
[2, 4, 6, 8, 10]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
1
100
385
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表切片

常见的切片方式

列表切片是访问列表又一种方式,只不过这次我们可以获得列表的子集,是列表的一个片段。
常用的方法:

  • 顺序获取
  • 倒序获取
  • 间隔获取
waliAIs = ['python基础','python进阶','机器学习','深度学习']

# 获得0,1,2个元素
print(waliAIs[0:3])
# 获得从开始到第3个个元素
print(waliAIs[:4])
# 获得从第1个到末尾元素
print(waliAIs[1:])
# 获得末尾元素
print(waliAIs[-1])
# 获得从第倒数第3个到末尾元素:最后3个元素
print(waliAIs[-3:])
# 获得从开始到倒数第3个元素:除掉最后3个元素
print(waliAIs[:-3])

for wali in waliAIs[:3]:
    print(wali)

['python基础', 'python进阶', '机器学习']
['python基础', 'python进阶', '机器学习', '深度学习']
['python进阶', '机器学习', '深度学习']
深度学习
['python进阶', '机器学习', '深度学习']
['python基础']
python基础
python进阶
机器学习

列表的复制

列表不能像数值一样直接通过赋值号来复制,这样说明两个列表变量同时都指向同一个列表。

  • 有一个变量改变了列表的值,其他的变量也跟着一起改变。

要想独立复制一个完整的列表,则需要使用:

  • xxx [:] 省略起始索引和终止索引
waliAIs = ['python基础','python进阶','机器学习','深度学习']

evaAIs = waliAIs

print(waliAIs)
print(evaAIs)

waliAIs.append("算法学习")

# 一个数据改变了,两个同时跟着一起改变
print(waliAIs)
print(evaAIs)

evaAIs.append("C++学习")

# 一个数据改变了,两个同时跟着一起改变
print(waliAIs)
print(evaAIs)

['python基础', 'python进阶', '机器学习', '深度学习']
['python基础', 'python进阶', '机器学习', '深度学习']
['python基础', 'python进阶', '机器学习', '深度学习', '算法学习']
['python基础', 'python进阶', '机器学习', '深度学习', '算法学习']
['python基础', 'python进阶', '机器学习', '深度学习', '算法学习', 'C++学习']
['python基础', 'python进阶', '机器学习', '深度学习', '算法学习', 'C++学习']
waliAIs = ['python基础','python进阶','机器学习','深度学习']

evaAIs = waliAIs[:]

print(waliAIs)
print(evaAIs)

waliAIs.append("算法学习")

# 一个数据改变了,另一个不会发生改变
print(waliAIs)
print(evaAIs)

evaAIs.append("C++学习")

# 一个数据改变了,另一个不会发生改变
print(waliAIs)
print(evaAIs)

['python基础', 'python进阶', '机器学习', '深度学习']
['python基础', 'python进阶', '机器学习', '深度学习']
['python基础', 'python进阶', '机器学习', '深度学习', '算法学习']
['python基础', 'python进阶', '机器学习', '深度学习']
['python基础', 'python进阶', '机器学习', '深度学习', '算法学习']
['python基础', 'python进阶', '机器学习', '深度学习', 'C++学习']

元组-tuple

不可变的列表叫元组,不能增加和删除或者修改元组里面的元素。
一旦初始化就不能修改。
定一个元组,用圆括号。可以使用列表中切片的方法。
元组的意义:
因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

waliAIs = ('python基础','python进阶','机器学习','深度学习')

print(waliAIs)

print(waliAIs[0])
print(waliAIs[:3])

('python基础', 'python进阶', '机器学习', '深度学习')
python基础
('python基础', 'python进阶', '机器学习')