继续之前的python教程,本篇关键字 列表,切片,Lambda。代码建议横屏观看,会有显示不全问题,暂时没找到什么好解决办法。
# 创建列表
empty_list = []
numbers = [1, 2, 3, 4, 5]
words = ['apple', 'banana', 'cherry']
mixed = [1, 'apple', True, 3.14]
# 访问列表元素
print(words[0]) # 输出 'apple'
print(numbers[2]) # 输出 3
# 修改列表元素
words[0] = 'orange'
print(words) # 输出 ['orange', 'banana', 'cherry']
# 切片
print(numbers[1:4]) # 输出 [2, 3, 4]
print(words[:2]) # 输出 ['orange', 'banana']
print(numbers[::2]) # 输出 [1, 3, 5]
# 添加元素
words.append('grape')
print(words) # 输出 ['orange', 'banana', 'cherry', 'grape']
numbers.insert(2, 10)
print(numbers) # 输出 [1, 2, 10, 3, 4, 5]
# 删除元素
del words[0]
print(words) # 输出 ['banana', 'cherry', 'grape']
numbers.remove(3)
print(numbers) # 输出 [1, 2, 10, 4, 5]
- `len()` 函数可以返回列表中元素的个数。
- `max()` 和 `min()` 函数可以返回列表中的最大值和最小值。
- `index()` 方法可以查找某个元素在列表中第一次出现的位置。
sublist = my_list[start:stop:step]
start
:起始索引,表示切片开始的位置(包含该位置的元素)。stop
:结束索引,表示切片结束的位置(不包含该位置的元素)。step
:步长(可选),表示从起始索引到结束索引的步长,默认为 1。start
,表示从列表开头开始。stop
,表示一直切片到列表末尾。step
为负数,表示从列表末尾开始向前切片。列表切片是一种用于获取列表中指定部分的灵活方法。它允许你从列表中选择一个连续的子序列,而不需要使用循环或其他迭代结构。
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 获取从索引 2 到索引 5(不包含)的子列表
sublist = my_list[2:5]
print(sublist) # 输出 [3, 4, 5]
# 获取从索引 0 到索引 6(不包含),步长为 2 的子列表
sublist = my_list[0:6:2]
print(sublist) # 输出 [1, 3, 5]
# 获取从索引 5 到列表末尾的子列表
sublist = my_list[5:]
print(sublist) # 输出 [6, 7, 8, 9, 10]
# 获取从列表开头到索引 7(不包含)的子列表
sublist = my_list[:7]
print(sublist) # 输出 [1, 2, 3, 4, 5, 6, 7]
# 使用负数索引
# 获取从倒数第三个元素到倒数第一个元素的子列表
sublist = my_list[-3:-1]
print(sublist) # 输出 [8, 9]
列表切片不仅适用于列表,还适用于字符串。在 Python 中,字符串可以看作是字符列表,因此你可以使用相同的切片语法来对字符串进行切片操作。
my_string = "Hello, World!"
# 获取从索引 2 到索引 5(不包含)的子字符串
substring = my_string[2:5]
print(substring) # 输出 "llo"
# 获取从索引 7 到字符串末尾的子字符串
substring = my_string[7:]
print(substring) # 输出 "World!"
# 获取从字符串开头到索引 5(不包含)的子字符串
substring = my_string[:5]
print(substring) # 输出 "Hello"
# 使用负数索引
# 获取从倒数第五个字符到倒数第一个字符的子字符串
substring = my_string[-5:-1]
print(substring) # 输出 "orld"
map()
函数:功能:
map()
函数接受一个函数和一个或多个可迭代对象作为输入,然后将这个函数应用于每个可迭代对象的对应元素,并返回一个包含所有函数应用结果的迭代器。
示例:
例如,你可以使用 map()
将一个列表中的每个元素都平方:
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # 输出 [1, 4, 9, 16, 25]
filter()
函数:功能:
filter()
函数接受一个函数和一个可迭代对象作为输入,然后对可迭代对象中的每个元素应用这个函数,只保留返回值为 True 的元素,并返回一个包含所有返回值为 True 的元素的迭代器。
示例:
例如,你可以使用 filter()
函数从一个列表中过滤出所有偶数:
numbers = [1, 2, 3, 4, 5]
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even) # 输出 [2, 4]
lambda arguments: expression
。map()
、filter()
、sorted()
等函数中使用。# 使用 lambda 创建简单的函数
add = lambda x, y: x + y
print(add(3, 5)) # 输出 8
# lambda 函数作为其他函数的参数
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # 输出 [1, 4, 9, 16, 25]
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even) # 输出 [2, 4]
# lambda 函数可以作为排序函数的 key 参数
words = ['banana', 'apple', 'cherry', 'orange']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words) # 输出 ['apple', 'banana', 'cherry', 'orange']
最后一段代码演示使用了 `sorted()` 函数对列表 `words` 进行排序,并指定了一个 `key` 参数,该参数接受一个函数作为输入,用于生成排序的依据。在这个例子中,使用了一个匿名函数 `lambda x: len(x)` 作为 `key` 参数。
-`lambda x: len(x)` 表示一个匿名函数,它接受一个参数 `x`,返回 `x` 的长度(即字符串的长度)。
-`sorted()` 函数会根据列表中每个字符串的长度来进行排序,而不是直接按照字符串的字典顺序排序。
列表 `words` 中的字符串分别是 'banana', 'apple', 'cherry', 'orange',它们的长度分别是 6、5、6、6。根据字符串长度排序后,'apple'(长度为 5)会排在最前面,然后是 'banana'、'cherry' 和 'orange'。