我一直在研究網頁抓取工具,我想創建包含不同元素的單獨串列。必須有超過 1000 個串列,我正在嘗試通過 for 回圈運行它。我需要根據每個特定迭代中的元素對串列進行適當命名。我嘗試使用 globals() 來實作這一點,但它只需要一個 int 或一個字符,而不是一個字串。有沒有辦法實作這一目標?
例如:如果people = ['John', 'James', 'Jane']
我需要 3 個名為的串列
Johnlist=[]
Jameslist=[]
Janelist=[]
下面是我嘗試過的,但它回傳一個錯誤,要求輸入 int 或 char。
for p in people:
names = #scrapedcontent
globals()['%list' % p] = []
for n in names:
globals()['%list' % p].append(#scrapedcontent)
uj5u.com熱心網友回復:
我強烈不鼓勵你使用globals,locals或者vars按照@roganjosh 的建議,更喜歡使用 dict:
from collections import defaultdict
people = defaultdict(list):
for p in people:
for n in names:
people[p].append(n)
或者
people = {}
for p in people:
names = #scrapedcontent
people[p] = names
不要使用這個
for p in people:
names = [] #scrapedcontent
globals().setdefault(f'list_{p}', []).extend(names)
輸出:
>>> list_John
[]
>>> list_James
[]
>>> list_Jane
[]
uj5u.com熱心網友回復:
嘗試在字典中做到這一點:
例如:
d = {}
for p in people:
d[p] = []
names = ...
d[p].extend(names)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/401810.html
