简体   繁体   中英

Saving a for loop output into a variable

For example given the following for loop:

for i in range(3):
    print(i, '->',i+1)

Gives the output:

0 -> 1
1 -> 2
2 -> 3

How could I save this output in string form such that it is saved in a variable.

So for example could say print(my_variable) and the output is as the above output.

Edit Given the following list:

[['ORGANIZATION', 'EDUCATION', 'UniversityWon', 'FormMathematics'], ['PERSON', 'Sixth', 'Economics'], ['GPE', 'FrenchUK', 'London']]

I have the following for loop that prints them in the desired way:

for i in output:
    print(i[0], '->', ', '.join(i[1:]))

Output of:

ORGANIZATION -> EDUCATION, UniversityWon, FormMathematics
PERSON -> Sixth, Economics
GPE -> FrenchUK, London

How can i save this output into a variable such that if i executed print(variable) , the above output would be printed?

A list comprehension can be used to generate the individual strings.

[f"{i} -> {i + 1}" for i in range(3)]

We can then join those with newlines.

"\n".join([f"{i} -> {i + 1}" for i in range(3)])

But we don't need to use a list comprehension here. A generator expression will be more efficient as it doesn't generate an entire list first and then iterate over that list.

"\n".join(f"{i} -> {i + 1}" for i in range(3))

If every line need to end in a newline, you can factor that into the f-string and then join them with an empty string.

''.join(f"{i} -> {i + 1}\n" for i in range(3))

You can use an f-string like this:

result = ""

for i in range(3):
    result += f"{i} -> {i + 1}\n"

print(result)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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