我是python的新手,所以我有2个输入,第一个是带名称的int my_shoes
,第二个是称为的彩色鞋的数组列表colour_list
。
my_shoes包含我拥有的每双鞋子的编号,而colour_list包含每种颜色的数组列表,并由数字表示。
情况1
my_shoes = 10
colour = [1,1,2,2,2,3,3,4,5,6]
output
"I have 3 pairs of shoes"
解释:因为有颜色1必须成对,2必须成对,以及曾经成对
my_shoes = 9
colour = [1,1,2,2,3]
输出
"The number has no match"
my_shoes = 9
colour = [1,2,1,2,1,3,3,3,3]
输出
"I have 4 pairs of shoes"
我已经尝试过此代码
my_shoes = 11
colour_list = ['a','b','c','d','e','b','n','n','c','c','h',]
to_be_pair = ()
duplicates = []
while my_shoes == range(len(colour_list)):
for values in some_list:
if some_list.count(values) == 2:
to_be_pair += 1
if values not in to_be_pair:
to_be_pair.append(values)
print("i have : ",to_be_pair , "pairs")
但输出是说我有:()对
替代Counter的是使用set和list.count()选项。
在python中设置将删除重复项并创建一组唯一值。然后,您可以遍历集合,并根据原始颜色列表对每个元素进行计数。这样,您就可以计算每个元素。由于需要成对,因此将计数除以2。使用//
它会自动使值取底并为您提供一个整数。所有返回值的总和将是鞋子总数。
其实现将如下所示:
def get_pairs(shoes, colours):
if len(colours) < shoes:
return f'The number {shoes} has no match in {colours}'
pairs = sum(colours.count(c)//2 for c in set(colours))
if pairs > 0:
return f'I have {pairs} pairs of shoes in {colours}'
else:
return f'The number {shoes} has no match in {colours}'
print (get_pairs(10, [1,1,2,2,2,3,3,4,5,6]))
print (get_pairs(8, [1,1,2,2,3]))
print (get_pairs(9, [1,2,1,2,1,3,3,3,3]))
print (get_pairs(6, [1,2,3,4,5,6]))
其输出将是:
I have 3 pairs of shoes in [1, 1, 2, 2, 2, 3, 3, 4, 5, 6]
The number 8 has no match in [1, 1, 2, 2, 3]
I have 4 pairs of shoes in [1, 2, 1, 2, 1, 3, 3, 3, 3]
The number 6 has no match in [1, 2, 3, 4, 5, 6]
您也可以替换get_pairs函数以使其具有变量,如下所示:
print (get_pairs(my_shoes, colours))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句