如何最小化列表,使 python 中的每个元素只有一个 - 在一行中?
How do I minimize a list so there will only be only one of each element in python - in one line?
我正在尝试编写一个函数,它将获取 2 个列表,找到它们之间的交点,然后 return 一个包含这些交点的新列表,新列表将不包含相同的元素不止一次。
例如:
intersection([1,2,3,4], [8,3,9])
[3]
我试过以下方法:
print(list(filter(lambda x: x in list2, list1)))
事情是这样的,例如:
intersection([1,2,3,3,4], [8,3,9])
结果为 [3,3]。
如何才能使同一行代码中只有一个 3?
谢谢!
尝试:
列表(设置(交点([1,2,3,3,4],[8,3,9])))
简单的方法是通过集合:
L = [1,2,3]
M = [4,2,2,3,3]
inter = list( set(L).intersection(M) )
为什么不使用 set 并将结果转换回列表如下:
l = [1, 2, 3, 3, 4]
l2 = [8, 3, 9]
list(set(l).intersection(set(l2)))
输出:
[3]
使用set.intesection
:
def intersection(l1, l2):
return list(set(l1).intersection(l2))
intersection([1,2,3,4], [8,3,9])
# [3]
如何获得 [3]
x = list(set(filter(lambda x: x in [1,2,3,3,4], [8,3,3,9])))
print(x)
输出:
[3]
我正在尝试编写一个函数,它将获取 2 个列表,找到它们之间的交点,然后 return 一个包含这些交点的新列表,新列表将不包含相同的元素不止一次。
例如:
intersection([1,2,3,4], [8,3,9])
[3]
我试过以下方法:
print(list(filter(lambda x: x in list2, list1)))
事情是这样的,例如:
intersection([1,2,3,3,4], [8,3,9])
结果为 [3,3]。
如何才能使同一行代码中只有一个 3?
谢谢!
尝试: 列表(设置(交点([1,2,3,3,4],[8,3,9])))
简单的方法是通过集合:
L = [1,2,3]
M = [4,2,2,3,3]
inter = list( set(L).intersection(M) )
为什么不使用 set 并将结果转换回列表如下:
l = [1, 2, 3, 3, 4]
l2 = [8, 3, 9]
list(set(l).intersection(set(l2)))
输出:
[3]
使用set.intesection
:
def intersection(l1, l2):
return list(set(l1).intersection(l2))
intersection([1,2,3,4], [8,3,9])
# [3]
如何获得 [3]
x = list(set(filter(lambda x: x in [1,2,3,3,4], [8,3,3,9])))
print(x)
输出:
[3]