在 Python 的列表理解中使用 break
Using break in a list comprehension in Python
break
在列表理解中使用:
- 使用列表理解来过滤集合。
itertools.takewhile()
只要满足条件,就可以使用该类从列表中获取元素。- 使用
list()
该类将结果转换为列表。
主程序
from itertools import takewhile a_list = [2, 4, 3, 8, 12, 3, 5] greater_than_3 = [number for number in a_list if number > 3] print(greater_than_3) # 👉️ [4, 8, 12, 5] until_12 = list(takewhile(lambda x: x != 12, greater_than_3)) print(until_12) # 👉️ [4, 8]
我们首先使用列表理解来选择原始列表中大于 3 的所有数字。
列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。
下一步是使用
itertools.takewhile
类来实现一条break
语句。
该类takewhile
接受一个谓词和一个可迭代对象,并生成一个迭代器,只要谓词为真,该迭代器就会从可迭代对象中返回元素。
主程序
from itertools import takewhile a_list = [2, 4, 3, 8, 12, 3, 5] until_odd = list(takewhile(lambda x: x % 2 == 0, a_list)) print(until_odd) # 👉️ [2, 4]
对列表中的每个项目调用 lambda 函数,并检查数字除以 时是否没有余数2
。
如果该函数被奇数调用,
takewhile()
该类将短路并退出迭代。最后一步是使用list()
该类将可迭代对象转换为列表。
该类
takewhile()
使用可迭代对象中的项目进行调用,直到该函数返回 false。
这是必要的,因为我们不能直接break
在列表理解中使用语句。
一个更直观的实现方法是使用一个简单的for
循环。
主程序
a_list = [2, 4, 3, 8, 12, 3, 5] until_odd = [] for item in a_list: if item % 2 != 0: break until_odd.append(item) print(until_odd) # 👉️ [2, 4]
我们使用for
循环来迭代数字列表。
在每次迭代中,我们检查当前数字是否为奇数,如果是,则跳出循环。
break
语句跳出最内层的封闭或
for
循环while
。
如果数字是偶数,我们使用该list.append()
方法将其附加到列表中。
list.append
()
方法将一个项目添加到列表的末尾。
主程序
my_list = ['bobby', 'hadz'] my_list.append('com') print(my_list) # 👉️ ['bobby', 'hadz', 'com']
该方法None
在改变原始列表时返回。