目录
2.1 列表list
1)切片、索引
-
索引
列表是一种有序的数据结构,可以存储任意类型的元素。列表中的元素可以通过索引进行访问,索引从 0 开始,表示列表中的第一个元素,依次类推。
-
切片
list[start:end:step] 倒序: list[::-1]
2)append、extend、insert
-
append
在列表末尾添加一个元素,不能直接添加多个。
list.appen(obj)
-
extend
在列表末尾添加另一个列表中的所有元素,即添加列表。
list.extend(iterable)
-
insert
在列表的指定位置插入一个元素。
list.insert(index,obj)
3)index、count
-
index
返回列表中指定元素第一次出现的索引,如果该元素不存在于列表中,则抛出 ValueError 异常。
fruits = ['apple', 'banana', 'cherry', 'banana'] print(fruits.index('banana')) # 输出 1
-
count
返回列表中指定元素出现的次数。
fruits = ['apple', 'banana', 'cherry', 'banana'] print(fruits.count('banana')) # 输出 2
4)len、sum、max、min
-
len
返回对象(如字符串、列表、元组等)的长度或元素个数。
-
sum
对可迭代对象中的元素进行求和操作。例如,sum([1, 2, 3]) 的结果为 6。
-
max
返回可迭代对象中的最大值。
-
min
返回可迭代对象中的最小值。
5)sort、reverse
-
sort
nums.sort() # 升序 nums.sort(reverse=True) # 倒叙
-
reverse
可以对列表对象进行反转,将列表中的元素按照相反的顺序排列。
>>> nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] >>> nums.reverse() >>> print(nums) [5, 3, 5, 6, 2, 9, 5, 1, 4, 1, 3]
-
lambda函数的自定义规则排序
参数key:该参数接受一个函数,用于指定排序的规则。
lambda函数可以方便地定义这样的规则。
my_list = ["3345", "14", "4765", "1", "598765", "9", "28765"] my_list.sort(reverse=True, key=lambda x: len(x)) print(my_list) >>['598765', '28765', '3345', '4765', '14', '1', '9']
my_list = ["apple", "banana", "cherry", "date", "elderberry", "fig"] my_list.sort(key=lambda x: len(x)) print(my_list)
6)加法(合并)和乘法(重复)
-
加法
list1 = [1, 2, 3] list2 = [4, 5, 6] combined_list = list1 + list2 print(combined_list) # 输出 [1, 2, 3, 4, 5, 6]
-
乘法
list1 = [1, 2, 3] repeated_list = list1 * 3 print(repeated_list) # 输出 [1, 2, 3, 1, 2, 3, 1, 2, 3]
7)列表解析式
-
语法:
[expression for item in iterable if condition]
-
具体来说,列表解析式的执行过程如下:
-
遍历iterable中的每一个元素,将其赋值给变量item;
-
对于满足条件condition的元素,求解表达式expression并将结果添加到新列表中;
-
返回新列表。
-
-
例:
# 生成一个1到10的平方的列表 squares = [x*x for x in range(1, 11)] print(squares) # 输出 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] # 生成一个1到10的偶数的列表 evens = [x for x in range(1, 11) if x % 2 == 0] print(evens) # 输出 [2, 4, 6, 8, 10] # 生成一个字符串列表,其中每个字符串是原列表中对应元素的首字母 words = ['apple', 'banana', 'cherry'] first_letters = [word[0] for word in words] print(first_letters) # 输出 ['a', 'b', 'c']