为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据Python中列表中每个元素的值创建多个列表?

如何根据Python中列表中每个元素的值创建多个列表?

Smart猫小萌 2023-07-05 15:31:44
如何根据一个现有列表中的元素创建多个列表?这些新列表的名称和元素均由现有列表确定。例如,现有的列表是: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']


查看完整回答
反对 回复 2023-07-05
?
烙印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']


查看完整回答
反对 回复 2023-07-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]


查看完整回答
反对 回复 2023-07-05
  • 3 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信