簡體   English   中英

遍歷列表列表以附加值

[英]Iterating through list of lists to append values

我需要查詢數據庫,所以我創建了一個列表。 我以后可以重新使用列表,因此可以將查詢到的值附加到列表中。

item_details = [
    ['name', 'detail'],
    ['name', 'detail']
]

counter = 0

for item_detail in item_details:
    database_query = # Database query code
    item_details[counter].append(database_query.value)
    counter += 1

這樣有效嗎? 這是pythonic嗎? 我在做什么有意義嗎?

您的代碼有一些問題,我可以看到。

不要使用手動計數器。 容易出錯,並且enumerate()可以完美地完成工作。

for name in item_details:

在這種情況下, name已經是內部列表(對其的引用)。 所以name在這里不是一個很好的變量名。 我也不確定為什么要

item_details[counter].append(database_query.value)

因為這與簡單地陳述相同

name.append(database_query.value)

總而言之:

for i, item_detail in enumerate(item_details):
    database_query = # Database query code, hopefully needs i
    item_detail.append(database_query.value)

甚至

for item_detail in item_details:
    database_query = # Database query code
    item_detail.append(database_query.value)

如果不需要索引。

此外,您可能會考慮不使用列表列表,而是使用字典列表,以便可以通過名稱識別各個項目。 當前,您可以通過它們的索引位置來識別它們,如果添加更多數據,可能會引起混淆。

因此,您在每個子列表中都有[名稱,詳細信息],並且您正在嘗試將database_querry添加到每個子列表中? 您應該嘗試:

for index, name in enumerate(item_details):
    database_query = # Database query code
    item_details[index].append(database_query.value)

因為計數器通常不是pythonic的,除非它們是collections.Couter :)希望我理解正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM