Suj*_*itS 4 python optimization python-3.x
python3程序,如果它是唯一的,则输入一个列表并输出.以下是一个例子:
list_a = [1,2,3,4,5] #unique
list_b = [1,2,2,3,4] #not unique
Run Code Online (Sandbox Code Playgroud)
我为这个问题写了一个python3脚本:
for i in range(len(list_a)):
j = i+1
for j in range(len(list_a)):
if list_a[i] == list_a[j]:
print ("not unique")
else:
print ("unique")
Run Code Online (Sandbox Code Playgroud)
这是检查它的唯一方法吗?我打赌不是!我想要一些等同于上面的优化代码,或者只是为给定列表输出"unique"或"not unique".先感谢您.
awe*_*oon 12
最简单的方法是将给定列表的集合长度与列表长度进行比较:
if len(l) != len(set(l)):
# not unique
Run Code Online (Sandbox Code Playgroud)
您可以使用all()和设置,一旦找到重复的项目,这将短路.
>>> def solve(lis):
... seen = set()
... return all(item not in seen and not seen.add(item) for item in lis)
...
>>> solve(range(5))
True
>>> solve([1,2,2,3,4])
False
Run Code Online (Sandbox Code Playgroud)
将列表放入一组:
set_a = set(list_a)
if len(set_a) == len(list_a):
print("unique")
else:
print("not unique")
Run Code Online (Sandbox Code Playgroud)