在Python中将循环结果分配给变量
考虑一个我想使用在Python中将循环结果分配给变量,python,list,list-comprehension,Python,List,List Comprehension,考虑一个我想使用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
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
变量,这很愚蠢,但无论如何。
那么
将返回列表的最后一个元素,即“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
中的值合并为逗号分隔的字符串,则
s = ','.join(friends)
如果你想在名字周围加上引号,可以这样
s = ','.join(['"{0}"'.format(x) for x in friends])
在循环结束时尝试以下操作:
the_variable = the_variable + i
但是,如果要执行此操作,应在字典中每个项目的末尾添加空格,否则将输出:
JoeZoeBradAngelinaZukiThandiParis
若list和loop在函数中,那个么将var声明为全局变量
global var
在函数开始时,我会用字典来代替,因为我也花了一段时间研究这个问题,并确定字典会很简单
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])
至于自动分配,我还没有找到一种方法。我也有一个问题,我就是这样设法解决的:
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
你为什么不能试着查字典呢?答案可能很简单,但我不明白你到底想要什么。你能详细说明一下吗?你期望得到什么结果?请注意,第一个示例不会产生您声称的输出……您所说的“变量”是什么意思?您已经有一个列表,该列表已分配给变量。您希望将项目分配给哪些变量?为什么?要完全正确,打印和返回是两个截然不同的概念。你的循环没有返回任何内容。你已经将列表中的每个元素存储为一个变量:原始列表本身。列表(枚举(朋友))在这里不是更容易/更清晰吗?@skirebattie,我不这么认为
对于idx,枚举(l)中的v
被广泛使用。请查看您的OrderedDict
。现在看看朋友
。请注意,您是如何使用几行代码重新创建列表
类型的。OP的问题根本上是有缺陷的,任何答案都不可能是合理的。
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