保存循环结果变量

时间:2016-04-18 12:18:49

标签: python for-loop

如何将for loop中的结果保存到variable? 基本上这个例子中的印刷品是什么:

myList = ['a' ,'b' , 'c' , 'd' , 'e']
for i in myList:
    print i

结果:

>>> 
a
b
c
d
e
>>> 

我想将此打印结果准确保存到变量中。

到现在为止我解决了这个问题:

myList = ['a' ,'b' , 'c' , 'd' , 'e']
for i in myList:
    if "a" in i:
        v1 = i
    if "b" in i:
        v2 = i
    if "c" in i:
        v3 = i

allresults = v1+"\n"+v2+"\n"+v3
print allresults

但问题是,如果您不知道列表的长度,因为它一直在变化(JSON),那么您将无法获得所有结果。

需要有一种更简单的方法,我在这里找到的所有其他人的信息都与数学等特定科目有关。

更具体地说,我试图将for循环的结果存储到变量中,这不是关于列表的问题。

5 个答案:

答案 0 :(得分:3)

根据您提供的代码,您似乎希望为每个项目提供某种类型的变量。所以,为此使用字典。

myList = ['a' ,'b' , 'c' , 'd' , 'e']

my_dict = {}

for idx, val in enumerate(myList): 
    my_dict["v{}".format(idx)] = val

因此,当您打印my_dict时。你将拥有:

{'v0': 'a', 'v1': 'b', 'v2': 'c', 'v3': 'd', 'v4': 'e'}

无论列表有多大,您都将拥有在那里创建的所有密钥,您可以相应地引用它们。

示例:

print(my_dict['v3']) # outputs d

如果你想以你希望输出的方式打印出你所有的价值,那么你所要做的就是:

.values完全符合它的含义。获取字典的值。然后,使用join方法将其分为字符串,并按'\ n'将其分隔换行。

print('\n'.join(my_dict.values()))

输出:

a
b
c
d
e

如果最后您真正要做的是“垂直”输出列表,那么其他解决方案就足够了,即print('\n'.join(myList))

答案 1 :(得分:2)

我真的不明白你为什么要做这样的事情,但我相信你想做这样的事情:

>>> my_var = '\n'.join(myList)
>>> my_var
'a\nb\nc\nd\ne'
>>> print my_var
a
b
c
d
e
>>> 

答案 2 :(得分:2)

您可以创建一个字符串来保存输出并立即打印出来。

myList = ['a' ,'b' , 'c' , 'd' , 'e']
str = ""
for i in myList:
    str += i + "\n"
print str

答案 3 :(得分:2)

如果您尝试将所有列表值粘贴在一起(由某些文本分隔),则应使用join方法。

myList = ['a' ,'b' , 'c' , 'd' , 'e']

allresults = "\n".join(myList)
print allresults

答案 4 :(得分:2)

有两种方法可以像allresults一样制作字符串:

1)从一个emptry字符串开始,展开它

allresults = ''

for c in MyList:
    if allresults: allresults += '\n'
    allresults += c

print allresults

2)使用内置.join()字符串方法来完成相同的

allresults = '\n'.join(myList)
print allresults

但是将循环变量保存到变量doens非常有意义,myList已经是变量。