Python 比较两个数字较大的列表中的零

Python 比较两个数字较大的列表中的零,python,Python,我必须比较两个长度相同的元素列表。(例如[0562256,0,0856]和[265,0265,0874958]。两个列表都有大量的零和249以上的数字。我想比较这些列表。如果在索引处,两个列表的数字都不同于0,则数字应保存在列表中。结果应该是两个长度相同的列表,只有249以上的数字(在示例中[256856]和[265958])。感谢您的帮助!使用zip()将每个列表的元素配对: listA = [0,562,256,0,0,856] listB = [265,0,265,0,874,958]

我必须比较两个长度相同的元素列表。(例如
[0562256,0,0856]
[265,0265,0874958]
。两个列表都有大量的零和249以上的数字。我想比较这些列表。如果在索引处,两个列表的数字都不同于
0
,则数字应保存在列表中。结果应该是两个长度相同的列表,只有
249以上的数字(在示例中
[256856]
[265958]
)。感谢您的帮助!

使用
zip()
将每个列表的元素配对:

listA = [0,562,256,0,0,856]
listB = [265,0,265,0,874,958]

combined = zip(listA, listB)
resultA = [a for a, b in combined if a and b]
resultB = [b for a, b in combined if a and b]
给出:

>>> resultA
[256, 856]
>>> resultB
[265, 958]
您还可以首先使用
filter()
删除一个或另一个元素为0的所有对:

combined = filter(lambda (a, b): (a and b), zip(listA, listB))
resultA = [a for a, b in combined]
resultB = [b for a, b in combined]

也许我们会找到更好的方法,但是

list1 = [0,562,256,0,0,856]
list2 = [265,0,265,0,874,958]
rest1 = []
rest2 = []
result1 = []
result2 = []
for i in range(len(list1)):
if list1[i] and list2[i]:
    rest1.append(list1[i])
        rest2.append(list2[i])
for i in range(len(rest1)):
if rest1[i] >249 and rest2[i]>249:
        result1.append(rest1[i])
    result2.append(rest2[i])
print(result1,result1)

到目前为止,你自己尝试过什么?展示你尝试过的代码并描述它不按预期工作的方式是很有帮助的。此外,你展示这一点的方式听起来像是在问家庭作业的答案。家庭作业的帮助是好的,但答案不是。如果你删除了第一个for It sti循环ll可以工作,但我认为这是一个很好的解决方案!谢谢你的欣赏。我做了第一个循环,因为你说“如果在索引处两个列表的数字都不同于0,那么应该将数字保存在列表中。”