如何根據一個現有列表中的元素創建多個列表?這些新列表的名稱和元素均由現有列表確定。例如,現有的列表是:a = [2,5,4]期望的輸出是:a_2= ['01','02']
a_5= ['01','02','03','04','05']
a_4= ['01','02','03','04']我不知道如何循環創建不同的列表名稱。有任何想法嗎?
3 回答
蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
您可以根據所需的變量使用鍵填充字典:
a = [2, 5, 4]
output = {f"a_{i}": ["{:02d}".format(x) for x in range(1, i + 1)] for i in a}然后您可以輕松訪問它們:
print(output["a_4"]) # ['01', '02', '03', '04']
烙印99
TA貢獻1829條經驗 獲得超13個贊
直接動態定義新變量是可能的,但不是很Pythonic...我的建議是構建一個名為的字典res:
a = [2, 5, 4]
res = {n: [f"{i:02d}" for i in range(1, n + 1)] for n in a}
print(res) # {2: ['01', '02'], 5: ['01', '02', '03', '04', '05'], 4: ['01', '02', '03', '04']}
print(res[5]) # ['01', '02', '03', '04', '05']
(其中res[5]作為您的a_5)...
將變量動態添加到全局命名空間的混亂版本是:
a = [2, 5, 4]
for n in a:
globals()[f"a_{n}"] = [f"{i:02d}" for i in range(1, n + 1)]
print(a_2) # ['01', '02']
print(a_4) # ['01', '02', '03', '04']
print(a_5) # ['01', '02', '03', '04', '05']
精慕HU
TA貢獻1845條經驗 獲得超8個贊
這能回答你的問題嗎?
a = [2,5,4] a_2, a_5, a_4 = [['0'+str(x) for x in range(b)] for b in a]
添加回答
舉報
0/150
提交
取消
