如何在 for 循环中赋值给不同的变量

2019-10-22 14:23:07 +08:00
 u2gign
例如我想生成很多的变量,a1=1,a2=2,a3=3,a4=4 ...
4298 次点击
所在节点    Python
20 条回复
qwerthhusn
2019-10-22 14:27:50 +08:00
OMG,list 不行?
airfling
2019-10-22 14:30:00 +08:00
矩阵不行吗,数组不行吗,list 不行吗
Joyboo
2019-10-22 14:30:18 +08:00
可变变量
littleylv
2019-10-22 14:33:16 +08:00
```php
<?php
for ($i = 1; $i <= 4; $i++) {
$k = 'a' . $i;
$$k = $i;
}
var_dump($a1);
var_dump($a2);
var_dump($a3);
var_dump($a4);
```

python 不懂
ipwx
2019-10-22 14:34:20 +08:00
意义何在
arrow8899
2019-10-22 14:48:50 +08:00
https://en.wikipedia.org/wiki/XY_problem
直接说你的原始需求
airdge
2019-10-22 14:50:29 +08:00
locals()['a1']=1
JeffGe
2019-10-22 14:55:53 +08:00
可以用 locals() 或者 globals()
但为什么要这么做?你是什么样的需求不能用 list 吗?
u2gign
2019-10-22 14:57:48 +08:00
@arrow8899 我要生成一个配置文件 根据传进来的 list 生成很多配置信息
krixaar
2019-10-22 15:03:13 +08:00
字典不行吗,和一堆变量用起来没啥区别啊
JeffGe
2019-10-22 15:04:58 +08:00
@u2gign 那用 dict 更好吧

config["a1"] = 1
fhy1994
2019-10-22 15:11:17 +08:00
```
name_dict = {}
for i in range(1, 5):
k = 'a' + str(i)
name_dict['%s' % k] = i

print(name_dict)
```

输出:

{'a3': 3, 'a1': 1, 'a2': 2, 'a4': 4}
wym7223645
2019-10-22 15:18:20 +08:00
//用 map,key 是变量名,value 是实际的值, key 动态生成
for (int i = 0; i < list.size; i++) {
map.put("a"+1,"实际的值");
}

大概这样应该可以吧
fhy1994
2019-10-22 15:21:45 +08:00
#12 补充
如需变量名将 name_dict = {} 改为 name_dict = locals()
Trim21
2019-10-22 15:23:15 +08:00
你把 xx1 xx2 什么的也放到一个 list 里面或者一个 dict 里面

最后生成一个这个


[{
'id':1,
'hosts': '1.1.1.1',
'port': 22222,
'username': 'root',
'pwd': 'aaaaaaaaaaaaaa'
},
{
'id':2,
'hosts': '2.2.2.2',
'username': 'root',
'pwd': 'sssssssssssss'
}]
cyrbuzz
2019-10-22 15:34:05 +08:00
以前我也有这么个需求,后来发现变量是保存在`locals()`和`globals()`里的,再后来发现用不着这样做。
`locals()`和`globals()`也是个字典,直接用字典就好了。
lanshee
2019-10-22 17:18:17 +08:00
要变量名就 dict,不要就是 list
u2gign
2019-10-22 18:23:51 +08:00
多谢各位
secondwtq
2019-10-22 23:16:36 +08:00
楼主以前不会是用 LISP 的吧 ...
necomancer
2019-10-23 00:41:47 +08:00
locals()
这个字典里放的是命名的变量。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/611745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX