[英]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.