gpt4 book ai didi

python - 遍历列表并将满足条件的元素保存到新列表

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:19 26 4
gpt4 key购买 nike

我正在尝试遍历一个列表并将一些 元素保存到一个新列表中:那些比前一个值大 50 的元素。我当前的代码只保存第一个值。我想要 [0, 76, 176, 262, 349]

list = [0, 76, 91, 99, 176, 192, 262, 290, 349]
new_list = []
for i in list:
if ((i+1)-i) > 50:
new_list.extend([i])

最佳答案

解决方案

What I want is to save the values 0, 76, 176, 262, and 349.

所以听起来您想遍历列表,如果当前元素比其前一个元素大 50,则将其保存到列表并重复。 此解决方案假定原始列表已排序。让我们将其转换为一些代码。

lst = [0, 76, 91, 99, 176, 192, 262, 290, 349]
new_lst = []
for i, num in enumerate(lst):
if i == 0 or num - lst[i-1] > 50:
new_lst.append(num)

print(new_lst)
# [0, 76, 176, 262, 349]

这里有趣的部分是循环中的条件:

if i == 0 or num - lst[i-1] > 50:

第一部分考虑我们是否在第一个元素处,在这种情况下,我假设您无论如何都想添加该元素。否则,获取当前元素与原始列表中的previous 元素之间的差异,并检查差异是否大于 50。在这两种情况下,我们都希望将元素追加到列表中(因此)。

注意事项

  • 您应该避免将 list 用作变量,这样您就不会隐藏内置的 Python 类型。
  • lst.extend([num]) 最好写成 lst.append(num)
  • enumerate(lst) 允许您轻松获取列表(或任何可迭代对象)中每个元素的索引和值。

关于python - 遍历列表并将满足条件的元素保存到新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44831223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com