'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?
Solution 1:[1]
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))
Solution 2:[2]
You can use an f-string like this:
result = ""
for i in range(3):
result += f"{i} -> {i + 1}\n"
print(result)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Chris |
| Solution 2 | Richard |
