【发布时间】:2023-01-28 07:45:54
【问题描述】:
我想数数的几个名字,它们出现在多少列表中。
four_in_one = [['David','Ellen','Ken'],['Peter','Ellen','Joe'],['Palow','Ellen','Jack'],['Lily','Elain','Ken']]
for name in ['David','Ken','Kate']:
for each_list in four_in_one:
i = 0
if name in each_list:
i += 1
print (name, i)
输出:
David 1
Ken 1
Ken 1
我怎样才能输出如下?
David 1
Kate 0
Ken 2
【问题讨论】:
-
您为每个子列表重置计数器 (
i = 0),并且仅当该名称在该列表中时才打印 -
仔细想想代码的逻辑。对于给定的名称,
print (name, i)应该出现多少次?只有一次,还是每次匹配?因此,该代码应该在for each_list in four_in_one:循环内,还是在循环外?同样,i = 0应该发生多少次,什么时候发生? -
作为旁白,请尝试练习一些debugging 技能。我假设这些都是简单的逻辑问题,您应该可以毫无问题地自行解决 - 原因很简单,我可以看到您在过去 9 年中以相当规律的速度提出了大约 300 个 Python 问题。假设这不是故意为常见的逻辑错误播种规范,请在将代码发布到此处之前更加注意代码。如果是 - 这个问题可能会更好。
-
很高兴听到你的 cmets。借此机会,我再次感谢那些分享和传播知识,无私地帮助我解决问题的人,他们让学习的世界和现实变得更加美丽可爱!
-
我想知道马克,你是否不介意听取反馈。感谢“无私的帮助者”这一切都很好,但事先的努力不仅是这里的要求,而且是你作为工程师提高的唯一途径。此外,您似乎故意忽略多年来对您的问题所做的编辑,这变得相当令人厌烦。 Stack Overflow 是一个由志愿者建立的共享资源 -请查看否决票并更改课程.