我試圖循環兩個列表,只想打印一個項目,如果它存在於第二個列表中。我將通過非常大的文件來做到這一點,所以不想像列表或字典那樣將它們存儲在內存中。有沒有一種方法可以在不存儲到列表或字典中的情況下執行此操作?Python檢查項目在迭代時存在於列表中
我能夠做到以下確認他們不在列表中,但不確定爲什麼它不工作,當我試圖通過刪除「不」來確認他們在列表中。
驗證項目的代碼在列表2中不存在。
list_1 = ['apple',
'pear',
'orange',
'kiwi',
'strawberry',
'banana']
list_2 = ['kiwi',
'melon',
'grape',
'pear']
for fruit_1 in list_1:
if all(fruit_1 not in fruit_2 for fruit_2 in list_2):
print(fruit_1)
驗證項目的代碼是否存在於list_2中。
list_1 = ['apple',
'pear',
'orange',
'kiwi',
'strawberry',
'banana']
list_2 = ['kiwi',
'melon',
'grape',
'pear']
for fruit_1 in list_1:
if all(fruit_1 in fruit_2 for fruit_2 in list_2):
print(fruit_1)
難道你不能只使用列表理解? '如果list_2中的x在列表__1中爲x,則返回'list_1'中列表中的項目列表,如果它們在'list_2'中的話。如果x不在list_2中,則反過來'[x for list_1]。 – Wright
@MBatish如果您接受將_one_列表保存在內存中,那麼您可以使用該列表創建一個集合,並在另一個列表上進行迭代(讀取文件)。那會很快。否則它將永遠佔用。 –
好的使用all()函數我正在避免這種情況。只是混淆了爲什麼反轉不起作用。 – MBasith