我必須比較具有相同長度的兩個元素列表。 (例如[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. 將列表與列表進行比較
- 3. 將兩個列表與多個條件進行比較
- 4. 將兩個列表與一個shell腳本進行比較
- 5. 將UUID與GattService列表進行比較
- 6. 比較兩個表的行和列
- 7. 將SQL中的兩個值與列之間的比較進行比較
- 8. 將列與兩個工作表進行比較
- 9. 將兩個列表與訂單更改進行比較
- 10. 將數據與sql列進行比較
- 11. 比較零數據的行和列
- 12. 將數據表與IList進行比較
- 13. 將datagridview與數據表進行比較
- 14. 將字典與不可比較的值或不可比較的值進行比較? (如列表或數據框)
- 15. 將DataTable列表與字符串列表進行比較
- 16. 將字符串列表與布爾列表進行比較
- 17. Python:將一個列表與一個整數進行比較
- 18. 將兩張表格與唯一的列匹配進行比較
- 19. 比較2 excel列,結果將與另一列進行比較
- 20. 比較python中的兩個大列表
- 21. 將數組列表與字符串元素進行比較android
- 22. Netlogo將全局變量列表與數字進行比較
- 23. 將兩個$ _GET值與數據庫中的行進行比較
- 24. 鍵進行比較的兩個字典
- 25. 將列表與其他多個列表進行比較
- 26. 將兩個字符串的長度與Ruby進行比較
- 27. 將字符串與字符列表進行比較
- 28. 將字典中的值與列表中的值進行比較
- 29. 比較兩個字段的數量並將其與第三個字段進行比較並返回結果
- 30. 將字符串與python中的類列表進行比較
和你有什麼試過自己到目前爲止? – 2013-03-14 11:50:54
顯示您嘗試的代碼並描述其無法按預期工作的方式很有幫助。另外,你提出這個問題的方式聽起來像是你要求做家庭作業的答案。幫助功課沒問題,但答案不是。 – dsh 2013-03-14 11:53:29