chcę zrobić coś jak String.Format("[{0}, {1}, {2}]", 1, 2, 3)
która zwraca:String formatowania w Pythonie
[1, 2, 3]
Jak to zrobić w Pythonie?
chcę zrobić coś jak String.Format("[{0}, {1}, {2}]", 1, 2, 3)
która zwraca:String formatowania w Pythonie
[1, 2, 3]
Jak to zrobić w Pythonie?
dotychczasowe odpowiedzi mogą korzystać Formatowanie d%, które jest stopniowo wycofywane w Pythonie 3.0+. Zakładając, że używasz Python 2.6+, system bardziej formatowanie przyszłościowe opisana jest tutaj:
http://docs.python.org/library/string.html#formatstrings
Mimo że istnieją bardziej zaawansowane funkcje, jak również, najprostsza forma kończy się patrząc bardzo blisko tego, co napisałeś :
>>> "[{0}, {1}, {2}]".format(1, 2, 3)
[1, 2, 3]
Ponadto, w Pythonie 3.1, nie ma potrzeby określania liczby porządkowej. "[{}, {}, {}]". format (1, 2, 3) –
Rozkazy są również opcjonalne w Pythonie 2.7 –
Czy masz referencje dokumentujące, że formatowanie% jest stopniowo wycofywane w Pythonie 3.0+ ? Wciąż jest w wersji 3.3 - zobacz http://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting - i chociaż dokumenty mówią, że nowsza metoda 'format' jest preferowana, to doesn doesn ' t powiedzieć, że operator% jest wycofywany. – Day
Nie formułuje się bardzo pochlebnie, ale będę zgadywać to jest to, czego szukasz:
foo = "Hello"
bar = "world"
baz = 2
print "%s, %s number %d" % (foo, bar, baz)
Dzięki, co oznacza ostatni%? Czy musisz napisać, jaki powinien być sposób drukowania w C++ z s, d, f itd.? –
Skieruję cię do odpowiedzi DNS powyżej, która jest lepsza: http://stackoverflow.com/questions/517355/string-formatting-in-python/517471#517471 – JosefAssad
Patrzysz do formatowania łańcucha, co w Pythonie jest w oparciu o funkcja sprintf w C
print "[%s, %s, %s]" % (1, 2, 3)
Pełną wygląd odniesienia tutaj: http://docs.python.org/library/stdtypes.html#string-formatting
Dzięki, co oznacza ostatni%? Czy musisz napisać, jaki powinien być sposób drukowania w C++ z s, d, f itd.? –
Tak. int =% d, float =% f (i jest precyzja, więc spójrz na odniesienie) –
można to zrobić na trzy sposoby:
Skorzystaj Pythona:
print [1, 2, 3] # Prints [1, 2, 3]
Pokazuje to samo ze zmienną:
numberList = [1, 2]
numberList.append(3)
print numberList # Prints [1, 2, 3]
użyć 'klasyczne' podstawienia strunowe (ALA printf z C). Zauważ tutaj różne znaczenia% jako specyfikator formatu łańcucha, a%, aby zastosować listę (właściwie krotkę) do ciągu formatowania. (. I zanotuj% służy jako modulo (reszta) operatora dla wyrażeń arytmetycznych)
print "[%i, %i, %i]" % (1, 2, 3)
Uwaga jeśli używamy naszego predefiniowanych zmiennych, musimy przekształcić go w krotce w tym celu:
print "[%i, %i, %i]" % tuple(numberList)
Zastosowanie Python formatowanie 3 ciąg. Jest to nadal dostępne we wcześniejszych wersjach (od wersji 2.6), ale jest to "nowy" sposób na wykonanie go w Py 3. Uwaga: możesz użyć argumentów pozycyjnych (porządkowych) lub nazwanych argumentów (do cholery, które umieściłem) je w odwrotnej kolejności.
print "[{0}, {1}, {2}]".format(1, 2, 3)
Uwaga Nazwy „jeden”, „dwa” i „trzy” może być cokolwiek ma sens.)
print "[{one}, {two}, {three}]".format(three=3, two=2, one=1)
Dla kompletności, używając "klasycznego" stylu, możesz również: "wydrukować" [% (jeden) i,% (dwa) i,% (trzy) i] "% {'trzy': 3," dwa " : 2, "jeden": 1} " – DrAl
Aby wydrukować elementy kolejno używać {} bez podania indeks
print('[{},{},{}]'.format(1,2,3))
(wyd. rks od python 2.7 i python 3.1)
Jeśli nie wiesz, jak wiele elementów są na liście, to aproach jest najbardziej uniwersalny
>>> '[{0}]'.format(', '.join([str(i) for i in [1,2,3]]))
'[1, 2, 3]'
Jest Mouch prostsza do listy ciągów
>>> '[{0}]'.format(', '.join(['a','b','c']))
'[a, b, c]'
myślę, że ta kombinacja brakuje: P
"[{0}, {1}, {2}]".format(*[1, 2, 3])
masz wiele rozwiązań :)
prosty sposób (C-style):
print("[%i, %i, %i]" %(1, 2, 3))
Zastosowanie str.format()
print("[{0}, {1}, {2}]", 1, 2, 3)
Zastosowanie str.Template()
s = Template('[$a, $b, $c]')
print(s.substitute(a = 1, b = 2, c = 3))
Można rea d PEP 3101 -- Advanced String Formatting
PEP 498, który wylądował w python 3.6
dodano interpolację ciągów literowych, która jest zasadniczo skróconą formą format
.
można teraz zrobić:
f"[{1}, {2}, {3}]"
Wspólne innych zastosowań znajdę użyteczne są:
pi = 3.141592653589793
today = datetime(year=2018, month=2, day=3)
num_2 = 2 # Drop assigned values in
num_3 = "3" # Call repr(), or it's shortened form !r
padding = 5 # Control prefix padding
precision = 3 # and precision for printing
f"""[{1},
{num_2},
{num_3!r},
{pi:{padding}.{precision}},
{today:%B %d, %Y}]"""
która będzie produkować:
"[1,\n 2,\n '3',\n 3.14,\n February 03, 2018]"
w [Python 3.6 +] (https : //docs.python.org/3/whatsnew/3.6.html#pep-498-formatted-string-literals) możesz użyć 'f" [{1}, {2}, {3}] "' – Soorena