Python|检查列表是否包含所有唯一元素
一些列表操作需要我们检查列表中的所有元素是否都是唯一的。这通常发生在我们尝试在列表中执行集合操作时。因此,这个特殊的实用程序在这些时候是必不可少的。让我们讨论可以执行此操作的某些方法。
方法#1:朴素的方法
解决方案通常从可用于执行特定任务的最简单方法开始。在这里,您可以使用嵌套循环来检查该元素之后是否在剩余列表中存在类似元素。
# Python3 code to demonstrate
# to test all elements in list are unique
# using naive method
# initializing list
test_list = [1, 3, 4, 6, 7]
# printing original list
print ("The original list is : " + str(test_list))
flag = 0
# using naive method
# to check all unique list elements
for i in range(len(test_list)):
for i1 in range(len(test_list)):
if i != i1:
if test_list[i] == test_list[i1]:
flag = 1
# printing result
if(not flag) :
print ("List contains all unique elements")
else :
print ("List contains does not contains all unique elements")
输出 :
The original list is : [1, 3, 4, 6, 7]
List contains all unique elements
方法 #2:使用len() + set()
这是最优雅的方式,可以通过仅使用一行来解决此问题。此解决方案将列表转换为设置,然后使用原始列表进行测试,如果包含类似的编号。的元素。
# Python3 code to demonstrate
# to test all elements in list are unique
# using set() + len()
# initializing list
test_list = [1, 3, 4, 6, 7]
# printing original list
print ("The original list is : " + str(test_list))
flag = 0
# using set() + len()
# to check all unique list elements
flag = len(set(test_list)) == len(test_list)
# printing result
if(flag) :
print ("List contains all unique elements")
else :
print ("List contains does not contains all unique elements")
输出 :
The original list is : [1, 3, 4, 6, 7]
List contains all unique elements
方法#3:使用Counter.itervalues()
这是不同的方法之一,它使用使用 Counter 获得的所有元素的频率,并检查是否有任何频率大于 1。
# Python code to demonstrate
# to test all elements in list are unique
# using Counter.itervalues()
from collections import Counter
# initializing list
test_list = [1, 3, 4, 6, 7]
# printing original list
print ("The original list is : " + str(test_list))
flag = 0
# using Counter.itervalues()
# to check all unique list elements
counter = Counter(test_list)
for values in counter.itervalues():
if values > 1:
flag = 1
# printing result
if(not flag) :
print ("List contains all unique elements")
else :
print ("List contains does not contains all unique elements")
输出 :
The original list is : [1, 3, 4, 6, 7]
List contains all unique elements