我必须比较具有相同长度的两个元素列表。 (例如[0,562,256,0,0,856]
和[265,0,265,0,874,958]
,这两个列表都有一个数量为零和数量在249以上的数字。我想比较这些列表。如果在索引处两个列表都有一个不同于0
的数字,则该数字应该保存在列表中该结果应该是两个清单只数相同长度的上述249
(在本例[256,856]
和[265,958]
)感谢您的帮助将两个列表与零和较大的数字进行比较
-1
A
回答
0
也许我们会找到一个更好的办法,但
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)
+0
如果你删除第一个循环它仍然有效,但它是一个很好的解决方案,我认为! – user2169610 2013-03-14 12:46:45
+0
谢谢你的感谢。我做了第一个循环,因为你说过“如果在索引处两个列表都有一个不同于0的数字,那么这个数字应该保存在一个列表中。” – 2013-03-14 12:49:02
3
使用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]
相关问题
- 1. 将两个列表与多个条件进行比较
- 2. 将两个列表与一个shell脚本进行比较
- 3. 将UUID与GattService列表进行比较
- 4. 比较两个表的行和列
- 5. 将SQL中的两个值与列之间的比较进行比较
- 6. 比较零数据的行和列
- 7. 将字典与不可比较的值或不可比较的值进行比较? (如列表或数据框)
- 8. 将两张表格与唯一的列匹配进行比较
- 9. 比较2 excel列,结果将与另一列进行比较
- 10. Netlogo将全局变量列表与数字进行比较
- 11. 将两个$ _GET值与数据库中的行进行比较
- 12. 比较两个大表中的多行
- 13. 将列表与其他多个列表进行比较
- 14. 将字符串与字符列表进行比较
- 15. 将字典中的值与列表中的值进行比较
- 16. 比较两个字段的数量并将其与第三个字段进行比较并返回结果
- 17. 将字符串与python中的类列表进行比较
- 18. 将字典的键与列表进行比较
- 19. 将两个字符串与MySQL进行比较
- 20. 将一个字符与一系列字符进行比较
- 21. 将列与有效值进行比较
- 22. 将两个集合与linq和populate变量进行比较
- 23. 将char与字符串进行比较
- 24. 将Arraylist与字符串进行比较
- 25. 比较两个列表
- 26. 比较两个列表C#
- 27. 比较两个列表
- 28. 比较两个列表?
- 29. 比较两个列表
- 30. 比较两个列表linq
和你有什么试过自己到目前为止? – 2013-03-14 11:50:54
显示您尝试的代码并描述其无法按预期工作的方式很有帮助。另外,你提出这个问题的方式听起来像是你要求做家庭作业的答案。帮助功课没问题,但答案不是。 – dsh 2013-03-14 11:53:29