将循环结果分配给Python中的变量

时间:2016-06-20 08:21:09

标签: 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", "Zuki", "Thandi", "Paris"]
for i in friends:
    var=i

首先,我必须声明另一个var变量,这是愚蠢但无论如何。 那么,

print var

将返回列表的最后一个元素,即“Paris”,因为每次迭代都会覆盖该变量。

所以我的问题是:如何为每次迭代将循环“i”的输出分配给Python中的变量?

对于这个问题的愚蠢而感到抱歉,但这是一个我似乎无法弄清楚的概念。

6 个答案:

答案 0 :(得分:1)

如果我理解得很好,你想动态创建变量。在这里。

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')])

答案 1 :(得分:1)

var = ''
friends = ["Joe", "Zoe", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]
for i in friends:
    var=i 

如果list和loop在函数中,则将var声明为global

global var

启动功能

答案 2 :(得分:1)

我也有这个问题,这就是我设法设法解决的问题:

    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

答案 3 :(得分:0)

如果要将friends中的值加入逗号分隔的字符串中,那么

s = ','.join(friends)

如果你想在名字中包含引号,可能就像

s = ','.join(['"{0}"'.format(x) for x in friends])

答案 4 :(得分:0)

在循环结束时尝试:

the_variable = the_variable + i

但是,如果你要这样做,你应该在字典中的每个项目的末尾添加一个空格,否则它将输出:

JoeZoeBradAngelinaZukiThandiParis

答案 5 :(得分:0)

我会改用字典,因为我花了一段时间研究,并确定字典会很容易。

    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])

关于自动分配,我还没有找到一种方法。