我是python新手,遇到了以下练习:
给定以下元组的元组,比较每个元组的第一个元素,计算苹果、香蕉、瓜和菠萝的总数:
myTupleofTuples = (("apple",1),("banana",1),("apple",2),("melon",1),("pineapple",2),("banana",2))
for i,j in myTupleofTuples:
counter = 0
for k in range(len(myTupleofTuples)):
if i in myTupleofTuples[k][0]:
counter = counter + myTupleofTuples[k][1]
print(i+" is in " +myTupleofTuples[k][0]+ " the counter of " +i+ " is " ,counter )
我习惯于使用java或c,并以某种方式开发了以前的解决方案,尽管我希望有一个更像python且优雅的解决方案来解决这个问题
与您的版本相当的Python版本(使用f-strings和解包变量):
我会用一个Counter来计数水果(相同的名称,因此在比较名称时使用
==
而不是in
):我最喜欢的计数模式之一是使用defaultdict。像这样:
当你解决这个问题时,字典很方便。下面的代码就是一个例子
如果要按现有方式打印它们,请执行以下操作:
输出:
相关问题 更多 >
编程相关推荐