[英]Assign the result of a loop to a variable in Python
考虑一个我想使用for
解析的列表:
friends = ["Joe", "Zoe", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]
for i in friends:
print i
将返回:
"Joe", "Zoe", "Brad", "Angelina", "Zuki", "Thandi", "Paris"
但是,如果我想把它放到一个 (str) 变量中,比如:
friends = ["Joe", "Zoe", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]
for i in friends:
var=i
首先我必须声明另一个var
变量,这很愚蠢,但无论如何。 那么,
print var
将返回列表的最后一个元素,即“Paris”,因为每次迭代时该变量都会被覆盖。
所以我的问题是:如何将每次迭代的循环“i”的输出分配给 Python 中的变量?
很抱歉这个问题很愚蠢,但这是一个我似乎无法弄清楚的概念。
如果我理解得很好,您想动态创建变量。 在这里。
from collections import OrderedDict
friends = ["Joe", "Zoe", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]
d = OrderedDict()
for idx, value in enumerate(friends):
key = 'var' + str(idx)
d[key] = value
print(d)
# Output
OrderedDict([('var0', 'Joe'), ('var1', 'Zoe'), ('var2', 'Brad'), ('var3', 'Angelina'), ('var4', 'Zuki'), ('var5', 'Thandi'), ('var6', 'Paris')])
我也有这个问题,这就是我设法解决它的方法:
friends = ["Joe", "Zoe", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]
new_friends = ' '.join([x for x in friends])
print(new_friends)
将返回:
Joe Zoe Brad Angelina Zuki Thandi Paris
var = ''
friends = ["Joe", "Zoe", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]
for i in friends:
var=i
如果列表和循环在函数中,则将 var 声明为全局
global var
在功能开始时
如果您想将friends
的值加入逗号分隔的字符串中,那就是
s = ','.join(friends)
如果您想在名称周围包含引号,则可能类似于
s = ','.join(['"{0}"'.format(x) for x in friends])
在循环结束时试试这个:
the_variable = the_variable + i
但是,如果要这样做,则应在字典中的每个项目的末尾添加一个空格,否则会输出:
JoeZoeBradAngelinaZukiThandiParis
我会用字典代替,因为我也花了一段时间研究这个,并确定字典很容易。
friends = ["Joe", "Zoe", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]
dict= {}
for i in friends:
dict[i] = i
print(dict)
print(dict['Zuki'])
dict['Zuki'] = "Tim Smith"
print(dict['Zuki'])
另一种选择是拨打该号码:
print(friends[0])
至于自动分配,我还没有找到办法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.