1、for循环中的else条件
这是一个for-else方法,循环遍历列表时使用else语句。
下面举个例子,比如我们想检查一个列表中是否包含奇数。
那么可以通过for循环,遍历查找。
numbers = [2, 4, 6, 8, 1] for number in numbers: if number % 2 == 1: print(number) break else: print("No odd numbers")
如果找到了奇数,就会打印该数值,并且执行break语句,跳过else语句。
没有的话,就不会执行break语句,而是执行else语句。
2、从列表中获取元素,定义多个变量
my_list = [1, 2, 3, 4, 5]
one, two, three, four, five = my_list
3、使用heapq模块,获取列表中n个最大或最小的元素
import heapq scores = [51, 33, 64, 87, 91, 75, 15, 49, 33, 82] print(heapq.nlargest(3, scores)) # [91, 87, 82] print(heapq.nsmallest(5, scores)) # [15, 33, 33, 49, 51]
4、将列表中的所有元素作为参数传递给函数
我们可以使用 * 号,提取列表中所有的元素
my_list = [1, 2, 3, 4] print(my_list) # [1, 2, 3, 4] print(*my_list) # 1 2 3 4
如此便可以将列表中的所有元素,作为参数传递给函数
def sum_of_elements(*arg): total = 0 for i in arg: total += i return total result = sum_of_elements(*[1, 2, 3, 4]) print(result) # 10
5、获取列表的所有中间元素
_, *elements_in_the_middle, _ = [1, 2, 3, 4, 5, 6, 7, 8]
print(elements_in_the_middle) # [2, 3, 4, 5, 6, 7]
6、使用一行代码赋值多个变量
one, two, three, four = 1, 2, 3, 4
7、列表推导式
只用一行代码,便可完成对数组的迭代以及运算。
比如,将列表中的每个数字提高一倍。
numbers = [1, 2, 3, 4, 5] squared_numbers = [num * num for num in numbers] print(squared_numbers) # [1, 4, 9, 16, 25]
推导式不仅列表能用,字典、集合、生成器也能使用。
下面看一下,使用字典推导式,将字典的值提高一倍
dictionary = {'a': 4, 'b': 5} squared_dictionary = {key: num * num for (key, num) in dictionary.items()} print(squared_dictionary) # {'a': 16, 'b': 25}
https://mp.weixin.qq.com/s/Kvpb9KgvKmlX200KosjW7A