Reputation: 231
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?
Upvotes: 0
Views: 1282
Reputation: 425
You can use an f-string like this:
result = ""
for i in range(3):
result += f"{i} -> {i + 1}\n"
print(result)
Upvotes: 0
Reputation: 36496
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))
Upvotes: 1