计算两个列表中数字的出现次数并返回一个列表
我想要计算两个列表中0出现的次数,并用Python保存这个数字。我试着用“列表推导式”来放进第三个列表,但结果并不是我想要的。
我的两个列表是:
list1 = [0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1]
list2 = [0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0]
所以,每当在两个列表的同一个位置都有0出现时,我想把'0'加到一个新列表里。我也想对1做同样的事情。
这个新列表应该看起来像这样:
newlist = [0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1]
谢谢你的帮助,我已经试了好几个小时了,还是没搞明白该怎么做!
5 个回答
0
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们刚开始学习编程的时候。为了帮助大家理解这些问题,很多人会在网上提问,比如在StackOverflow上。
在这些提问中,通常会有一些代码示例,像
list1 = [0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1]
list2 = [0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0]
temp = [ list1[i] if list1[i] == list2[i] else 2 for i in range( 0, len(list1) )]
answer = [value for value in temp if value != 2]
print( answer )
这样的占位符就是用来表示这些代码的。通过这些代码,提问者可以更清楚地说明他们遇到的问题,其他人也能更容易地理解并提供帮助。
总之,提问和分享代码是学习编程过程中非常重要的一部分,它能帮助我们更快地解决问题,提升我们的技能。
1
在编程中,有时候我们需要把一些数据从一个地方转移到另一个地方。这个过程就像把水从一个杯子倒到另一个杯子一样。我们需要确保水不会洒出来,也就是要保证数据的完整性。
在这个过程中,我们可能会用到一些工具和方法,来帮助我们更好地管理这些数据。比如,有些工具可以让我们更方便地查看和修改数据,就像用一个漏斗来帮助我们更好地倒水。
此外,数据的格式也很重要。就像水有不同的温度和颜色,数据也有不同的类型和结构。我们需要了解这些不同,才能更有效地处理它们。
总之,数据的转移和管理是编程中一个很重要的部分,掌握这些基本概念可以帮助我们更好地进行编程。
[x or y for x,y zip(list1, list2)]
5
你可以使用列表推导式,像这样:
answer = [x for x, y in zip(list1, list2) if x == y]
另外,你也可以通过简单的列表操作来解决这个问题,不需要使用列表推导式:
answer = []
for x, y in zip(list1, list2):
if x == y:
answer.append(x)
在这两种情况下,answer
的结果将会是:
[0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1]