Takto mám 2D zoznam znakov:
a = [["1","2","3"],
["4","5","6"],
["7","8","9"]]
Čo je to najviac pythonic spôsob, ako vytlačiť zoznam ako celý blok?
123
456
789
odpovede:
7 pre odpoveď č. 1Existuje mnoho spôsobov. Pravdepodobne a str.join
mapovania str.join
s:
>>> a = [["1","2","3"],
... ["4","5","6"],
... ["7","8","9"]]
>>> print("n".join(map("".join, a)))
123
456
789
>>>
0 pre odpoveď č. 2
Ako toto:
import os
array = [["1","2","3"],
["4","5","6"],
["7","8","9"]]
print(os.linesep.join(map("".join, array)))
0 pre odpoveď č. 3
Ak hľadáte Pythonic potom určite potrebujete pochopenie generátora:
print("n".join("".join(i) for i in array))
0 pre odpoveď č. 4
Najlepší spôsob podľa môjho názoru by bolo použiť print
Funkcie. s print
Funkcia, ktorú ste vyhrali, nevyžaduje žiadny typ spojenia a konverzie (ak všetky objekty nie sú reťazce).
>>> a = [["1","2","3"],
... ["4", 5, 6], # Contains integers as well.
... ["7","8","9"]]
...
>>> for x in a:
... print(*x, sep="")
...
...
123
456
789
Ak sa nachádzate v Pythone 2, tlačová funkcia sa môže importovať pomocou from __future__ import print_function
.