python 变量名自增

纯小白一枚

求教,

我想要一种效果

利用循环使得变量名逐渐增加,就像是a1,a2,a3,a4这种

大神们有什么有什么浅显易懂的方法实现,太高级了我也看不懂。

谢谢~

d = {}  #用字典保存变量吧
for i in range(1,6):
   d[f'a{i}'] = i*5;
print(d['a1'])
print(d['a2'])
print(d['a3'])
print(d['a4'])
print(d['a5'])

 

【转载】 Python动态生成变量 - nookia - 博客园 (cnblogs.com)

a1 = 0;
for i in range(0,50):
    a1+=1;
lst = [];
for i in range(0,50):
    lst.append({'a'+str(i):"something here"+str(i)})
print(lst)
print(lst[0]['a0'])

 

def test_list_pre():
    prepare_list = locals()
    for i in range(16):
        prepare_list['list_' + str(i)] = []
        prepare_list['list_' + str(i)].append(('我是第' + str(i)) + '个list')
    print(prepare_list['list_0'])
    print(prepare_list['list_1'])
    print(prepare_list['list_2'])
    print(prepare_list['list_3'])

if __name__ == '__main__':
    test_list_pre()

 

d 是字典,就是用字典中的键名来代替变量名,

d['a1']就是设置/获取字典中的键名为a1的值。 

 

 f'' 是模板字符串,可以把字符串中{}里的变量直接取值,

 如:i=1

 f'a{i}'的结果是'a1'

d[f'a{i}'] 就是设置键名为a1的值 

也可以这样

   d['a'+str(i)] = i*5;

 

用列表推导式,可以获得变量名按序号增加。

lis=[f'a{i}' for i in range(10)]

print(*lis,sep=',')

Python 3.8.3 (default, May 27 2020, 02:08:17) [GCC 9.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> for i in range(4): ... exec('a%d=%d'%(i,i)) ... >>> print(a0,a1,a2,a3) 0 1 2 3 >>>

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632