Saya membuat string s
dengan Python 2.6.5 yang akan memiliki jumlah %s
token yang bervariasi , yang cocok dengan jumlah entri dalam daftar x
. Saya perlu menulis string yang diformat. Berikut ini tidak berhasil, tetapi menunjukkan apa yang saya coba lakukan. Dalam contoh ini, ada tiga %s
token dan daftarnya memiliki tiga entri.
s = '%s BLAH %s FOO %s BAR'
x = ['1', '2', '3']
print s % (x)
Saya ingin string keluarannya menjadi:
1 BLAH 2 FOO 3 BAR
python
string
list
formatting
string-formatting
SabreWolfy
sumber
sumber
(x)
adalah hal yang sama denganx
. Menempatkan satu token dalam tanda kurung tidak ada artinya dalam Python. Anda biasanya memasukkan tanda kurungfoo = (bar, )
agar lebih mudah dibaca tetapifoo = bar,
melakukan hal yang persis sama.print s % (x)
itulah yang OP tulis, saya hanya mengutip dia.foo = (bar, )
:)(x)
notasi untuk kejelasan; itu juga menghindari lupa tanda kurung jika nanti Anda menambahkan variabel tambahan.Anda harus melihat metode format python. Anda kemudian dapat menentukan string pemformatan Anda seperti ini:
sumber
%
operator hanya membongkar tupel.s
lebih kompleks, karena saya perlu memasukkan angka yang bertambah daripada hanya%s
untuk setiap posisi.s
dibuat dalam beberapa langkah berbeda, jadi lebih mudah untuk hanya menyertakan%s
token.print u'%(blah)d BLAHS %(foo)d FOOS …' % {'blah': 15, 'foo': 4}
.s = '{} BLAH {} BLAH BLAH {} BLAH BLAH BLAH'
Mengikuti halaman sumber daya ini , jika panjang x bervariasi, kita dapat menggunakan:
untuk membuat placeholder untuk setiap elemen dari daftar
x
. Berikut contohnya:sumber
Ini satu baris. Jawaban improvisasi kecil menggunakan format dengan print () untuk mengulang daftar.
Bagaimana dengan ini (python 3.x):
Baca dokumen di sini tentang menggunakan format () .
sumber
Karena saya baru belajar tentang hal keren ini (mengindeks ke dalam daftar dari dalam format string) saya menambahkan ke pertanyaan lama ini.
Keluaran:
Namun, saya masih belum menemukan cara melakukan pemotongan (di dalam string format
'"{x[2:4]}".format...
,) dan ingin mengetahui apakah ada yang punya ide, namun saya curiga Anda tidak bisa melakukan itu.sumber
Ini pertanyaan yang menyenangkan! Cara lain untuk menangani ini untuk daftar panjang variabel adalah dengan membuat fungsi yang memanfaatkan sepenuhnya
.format
metode dan pembongkaran daftar. Dalam contoh berikut saya tidak menggunakan pemformatan yang mewah, tetapi itu dapat dengan mudah diubah sesuai kebutuhan Anda.sumber
Sama dengan jawaban @ neobot tetapi sedikit lebih modern dan ringkas.
sumber
Outputnya adalah
sumber