繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM