【发布时间】:2018-03-04 04:21:36
【问题描述】:
我有两个列表,可以是 list 或 None。我想获得第三个列表,其结果是唯一的,将这两个列表联合起来。
- 如果
first列表是None 并且second是None -result将是None - 如果
first是 None 并且second不是 None -result将是second - 如果
second是 None 并且first不是 None -result将是first - 如果
second不是 None 且first不是 None -result将是first + second
我用 if 条件来做这个简单的事情:
result = first if first else second
if result is not None:
try:
result = list(set(first + second))
except TypeError:
pass
我想以更好的方式做到这一点。也许您知道使用itertools 或其他方式通过一个或多个字符串来解决此问题的方法。
【问题讨论】:
-
除此之外,最短的(尽管可能效率不高)是
set((first or []) + (second or [])) -
目标不就是寻找独特的元素吗?
-
@myaut,我想找到更有效的方法,如果它会更大,那么好吧,没关系!
-
@synchronizer,是的,目标是找到获取唯一列表的有效方法
-
[1, 2, 3]和[2, None, 6]的预期结果是什么?
标签: python algorithm python-2.7 python-3.x list