Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中将循环结果分配给变量_Python_List_List Comprehension - Fatal编程技术网

在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