如何比较列表中的项目



这是我的列表

my_list = [18, 19, 20, 27, 28, 29, 38, 39, 40]

我的目标是排序或创建像这样的新列表

list1 = [18, 19, 20]
list2 = [27, 28, 29]
list3 = [38, 39, 40]

然后比较它们中的每一个,只留下相等的项目,

list1 x == list2 x - 10 or list1 x == list3 x - 10
list1 x == list2 x + 10 or list1 x == list3 x + 10
list2 x == list1 x - 10 or list2 x == list3 x - 10
list2 x == list1 x + 10 or list2 x == list2 x + 10
list3 x == list1 x - 10 or list3 x == list2 x - 10
list3 x == list1 x + 10 or list3 x == list2 x + 10

所以最终的名单会像一样

final = [18,19,28,29,38,39]

我已经写了这些代码,但无法实现目标。这些都是不成功的尝试。

N1

for lst in my_list:
ind = my_list.index(lst)
if int(my_list[ind]) == any(int(x)-10 for x in my_list) or int(my_list[ind]) == any(int(x)+10 for x in my_list):
print(ind)

N2

for id in my_list:
ind = my_list.index(id)
try:
if id == (my_list[ind+1])-1 and id :
print(id)
except IndexError:
print("out of", id)

提前谢谢。

听起来你想把一个列表作为输入,并生成一个新的列表,该列表只包含原始列表中与原始列表中另一个元素相距10的元素。

my_list = [18, 19, 20, 27, 28, 29, 38, 39, 40]
new_list = list(filter(lambda x: x + 10 in my_list or x - 10 in my_list, my_list))

这里有一个简单的方法,可以使用python的filter方法来实现这一点。

结果:

[18, 19, 28, 29, 38, 39]

相关内容

  • 没有找到相关文章

最新更新