Python 中根据条件获取列表的子集

Python 中要根据条件获取列表的子集:

  1. 使用列表推导来遍历列表。
  2. 检查每个元素是否满足条件并返回结果。
  3. 新列表将只包含满足条件的元素。
my_list = [4, 7, 9, 12, 27]

subset = [
    number for number in my_list
    if number > 10
]

print(subset)  # ?️ [12, 27]

我们使用列表理解来迭代列表。

在每次迭代中,我们检查当前项目是否大于 10 并返回结果。

新列表仅包含满足条件的项目。

或者,我们可以使用 for 循环。


使用 for 循环根据条件获取列表的子集

Python 中要根据条件获取列表的子集:

  1. 使用 for 循环遍历列表。
  2. 检查每个项目是否满足条件。
  3. 将满足条件的项目追加到新列表中。
my_list = [4, 7, 9, 12, 27]

subset = []

for item in my_list:
    if item > 10:
        subset.append(item)

print(subset)  # ?️ [12, 27]

我们使用 for 循环遍历列表

在每次迭代中,我们检查当前数字是否大于 10。

如果满足条件,我们使用 list.append() 方法将项目添加到新列表。

my_list = ['www', 'jiyik']

my_list.append('com')

print(my_list)  # ?️ ['www', 'jiyik', 'com']

该方法在改变原始列表时返回 None。


使用 filter() 根据条件获取列表的子集

Python 中要根据条件获取列表的子集:

  1. 使用 filter() 函数检查每个项目是否满足条件。
  2. 使用 list() 类将过滤器对象转换为列表。
my_list = [4, 7, 9, 12, 27]

subset = list(
    filter(
        lambda x: x > 10,
        my_list
    )
)
print(subset) # ?️ [12, 27]

filter 函数接受一个函数和一个可迭代对象作为参数,并从可迭代对象的元素构造一个迭代器,函数返回一个真值。

我们传递给 filter() 的 lambda 函数会针对列表中的每个元素进行调用。

该函数检查元素是否大于 10 并返回结果。

最后一步是使用 list() 类将过滤器对象转换为列表。

选择哪种方法是个人喜好的问题。 我会使用列表推导,因为我发现它们非常直接且易于阅读。