要求:
- 我想運行一個 for 回圈,它會根據它的范圍創建一個新串列
- 創建串列后,我希望串列附加迭代中運行的資料
- 如果我的范圍為 5,則應創建 4 個串列,并應用于在其中附加資料。
附上一個完全錯誤的代碼,但它解釋了我想要什么
for b in range(1,5):
f"abc{b}" = []
d = f"***{b}"
f"abc{b}".append(d)
print(abc1)
Output - ***1
print(abc2)
Output - ***2
這樣的事情可能嗎?或者任何替代解決方案?
對于所有回答過我之前問題的用戶,我請求您更新您的評論和答案。
uj5u.com熱心網友回復:
使用字典。
例子:
mydict = {};
for i in range (1,5):
mydict[i] = [i]
這將創建一個像這樣的物件:
{1: [1], 2: [2], 3: [3], 4: [4]}
您可以根據需要對其進行迭代/互動。
uj5u.com熱心網友回復:
如果我理解你的意圖,你不需要 100 個變數,你只需要創建一個串列串列并以這種方式附加元素
list_of_lists = []
for i in range(1,5):
list_of_lists.append([i])
print(list_of_lists)
uj5u.com熱心網友回復:
您可以使用串列理解,
In [80]: result = [[i] for i in range(1, 5)]
In [81]: result
Out[81]: [[1], [2], [3], [4]]
或者,
In [82]: result = []
In [83]: for i in range(1, 5):
...: result.append([i])
編輯
我從您的評論中了解到您想在每次迭代中創建一個新變數。我認為這是一種不好的方法,您可以改用字典。
這是一個糟糕的方法
In [84]: for i in range(0, 5):
...: globals()[f"list_{i}"] = [i]
In [85]: print(list_0, list_1, list_2, list_3, list_4)
[0] [1] [2] [3] [4]
您可以像這樣使用字典,
In [86]: {f'list_{i}': [i] for i in range(0, 5)}
Out[86]: {'list_0': [0], 'list_1': [1], 'list_2': [2], 'list_3': [3], 'list_4': [4]}
uj5u.com熱心網友回復:
您可能想使用 dict 理解
#num of lists you want
num_of_lists = 5
mylists = { f'list_{i}':[i] for i in range(1,num_of_lists )}
# set the dictionary of named-lists to your local variables
# WARNING: this will overwrite any local variables with the same name
locals().update(mylists)
print(list_1)
# [1]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/505233.html
下一篇:模擬資料時回圈增量小于1的問題
