使用计数器作为条件
Using counter as condition
我正在尝试根据变量的出现次数做一个条件。
如果任何变量出现不止一次,它将显示为错误;如果每个变量出现一次,则它只会显示为正确。我试过这个但没有用:
from collections import Counter
z = ['blue', 'red', 'yellow']
Counter(z)
print(Counter(z))
if Counter(z).items() != 1:
print('Wrong')
else:
print('Right')
实现此目的的最简单方法是使用 all
而不是 counter.values()
(包含所有计数):
from collections import Counter
right_counter = Counter([1, 2])
if all(count == 1 for count in right_counter.values()):
print('right')
else:
print('wrong')
wrong_counter = Counter([1, 1, 2])
if all(count == 1 for count in wrong_counter.values()):
print('right')
else:
print('wrong')
产出
right
wrong
或者,您可以确保列表的长度等于列表集合的长度:
right_list = [1, 2]
wrong_list = [1, 1, 2]
if len(right_list) == len(set(right_list)):
print('right')
else:
print('wrong')
if len(wrong_list) == len(set(wrong_list)):
print('right')
else:
print('wrong')
也输出
right
wrong
只需使用all
来检查单次出现的条件。
如果 value
为 1,则它将 True
附加到列表中,否则 False
all
检查列表中的所有元素是否为 True
,
from collections import Counter
z = ['blue', 'red', 'red','yellow']
dic = Counter(z)
if all(value == 1 for key, value in dic.items()):
print('Right')
else:
print('Wrong')
我正在尝试根据变量的出现次数做一个条件。 如果任何变量出现不止一次,它将显示为错误;如果每个变量出现一次,则它只会显示为正确。我试过这个但没有用:
from collections import Counter
z = ['blue', 'red', 'yellow']
Counter(z)
print(Counter(z))
if Counter(z).items() != 1:
print('Wrong')
else:
print('Right')
实现此目的的最简单方法是使用 all
而不是 counter.values()
(包含所有计数):
from collections import Counter
right_counter = Counter([1, 2])
if all(count == 1 for count in right_counter.values()):
print('right')
else:
print('wrong')
wrong_counter = Counter([1, 1, 2])
if all(count == 1 for count in wrong_counter.values()):
print('right')
else:
print('wrong')
产出
right
wrong
或者,您可以确保列表的长度等于列表集合的长度:
right_list = [1, 2]
wrong_list = [1, 1, 2]
if len(right_list) == len(set(right_list)):
print('right')
else:
print('wrong')
if len(wrong_list) == len(set(wrong_list)):
print('right')
else:
print('wrong')
也输出
right
wrong
只需使用all
来检查单次出现的条件。
如果 value
为 1,则它将 True
附加到列表中,否则 False
all
检查列表中的所有元素是否为 True
,
from collections import Counter
z = ['blue', 'red', 'red','yellow']
dic = Counter(z)
if all(value == 1 for key, value in dic.items()):
print('Right')
else:
print('Wrong')