gpt4 book ai didi

python - 从列表列表中删除重复内容而不保留任何顺序

转载 作者:太空狗 更新时间:2023-10-29 17:39:15 26 4
gpt4 key购买 nike

我正在用 Python 编写代码来查找整数的因子对。但是配对也会导致反向配对。我想在不导入任何模块的情况下使用简单的方法消除那些反向对。例如。

[[1, 200], [2, 100], [4, 50], [5, 40], [8, 25], [10, 20], [20, 10], [ 25, 8], [40, 5], [50, 4], [100, 2], [200, 1]]

输出应该是:

[[1, 200], [2, 100], [4, 50], [5, 40], [8, 25], [10, 20]]

这是我目前所得到的:

N = []
J = []
F = []
Z = []
S = []
num = input("Enter no. of elements in list")
print ('Enter numbers')
prod = 1
for i in range(int(num)):
n = input("num :")
N.append(int(n))
for x in N:
prod = prod*x
print (prod)
k = input("Enter no. of splits:")
for o in range(1,prod+1):
if prod%o == 0:
J.append(o)
F.append(o)
print (J)

Z = [[a, b] for a in J for b in F if a*b == prod]
print (Z)

最佳答案

使用 set 删除重复项。

例如:

lst = [[1, 200], [2, 100], [4, 50], [5, 40], [8, 25], [10, 20], [20, 10], [25, 8], [40, 5], [50, 4], [100, 2], [200, 1]]
lst = set([tuple(sorted(i)) for i in lst]) #Sort inner list and then use set
lst = list(map(list, lst)) #Converting back to list
print(lst)

输出:

[[8, 25], [4, 50], [1, 200], [10, 20], [2, 100], [5, 40]]

关于python - 从列表列表中删除重复内容而不保留任何顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51456809/

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