Saya harus bergabung dengan daftar item. Banyak item dalam daftar adalah nilai integer yang dikembalikan dari suatu fungsi; yaitu,
myList.append(munfunc())
Bagaimana cara saya mengkonversi hasil yang dikembalikan ke string untuk bergabung dengan daftar?
Apakah saya perlu melakukan hal berikut untuk setiap nilai integer:
myList.append(str(myfunc()))
Apakah ada cara yang lebih Pythonic untuk menyelesaikan masalah casting?
Jawaban:
Memanggil
str(...)
adalah cara Pythonic untuk mengubah sesuatu menjadi string.Anda mungkin ingin mempertimbangkan mengapa Anda menginginkan daftar string. Sebagai gantinya, Anda dapat menyimpannya sebagai daftar bilangan bulat dan hanya mengonversi bilangan bulat menjadi string saat Anda perlu menampilkannya. Misalnya, jika Anda memiliki daftar bilangan bulat maka Anda dapat mengonversinya satu per satu di for-loop dan bergabung dengan
,
:sumber
Tidak ada yang salah dengan melewatkan bilangan bulat ke str. Salah satu alasan Anda mungkin tidak melakukan ini adalah bahwa myList benar-benar seharusnya menjadi daftar bilangan bulat misalnya akan masuk akal untuk menjumlahkan nilai-nilai dalam daftar. Jika demikian, jangan berikan int Anda ke str sebelum menambahkannya ke myList. Jika Anda akhirnya tidak mengonversi ke string sebelum menambahkan, Anda dapat membuat satu string besar dengan melakukan sesuatu seperti
sumber
str
? Silakan pertimbangkan kemungkinan bahwa Anda perlu menambahkan beberapa logika fuzzy ke parser Anda ;-)Fungsi peta dalam python dapat digunakan. Dibutuhkan dua argumen. Argumen pertama adalah fungsi yang harus digunakan untuk setiap elemen daftar. Argumen kedua adalah iterable .
Setelah mengonversi daftar menjadi string, Anda dapat menggunakan fungsi gabung sederhana untuk menggabungkan daftar menjadi satu string
sumber
metode di atas adalah cara termudah dan paling umum untuk mengubah daftar menjadi string. metode pendek lain adalah-
sumber
Ada tiga cara untuk melakukan ini.
katakanlah Anda punya daftar int
"-".join(str(n) for n in my_list)
"-".join([str(n) for n in my_list])
"-".join(map(str, my_list))
Namun seperti yang dinyatakan dalam contoh timeit di situs web python di https://docs.python.org/2/library/timeit.html menggunakan peta lebih cepat. Jadi saya sarankan Anda menggunakan
"-".join(map(str, my_list))
sumber
Masalah Anda agak jelas. Mungkin Anda mencari perluasan, untuk menambahkan semua elemen daftar lain ke daftar yang ada:
Jika Anda ingin mengonversi bilangan bulat menjadi string, gunakan str () atau interpolasi string, mungkin dikombinasikan dengan pemahaman daftar, yaitu
Semua ini dianggap pythonic (ok, ekspresi generator bahkan lebih pythonic tapi mari kita tetap sederhana dan pada topik)
sumber
Sebagai contoh:
Mengenai saya, saya ingin menambahkan
str
sebelum daftar str:Atau daftar tunggal:
sumber
Mungkin Anda tidak perlu angka sebagai string, cukup lakukan:
Nanti jika Anda membutuhkannya sebagai string, Anda bisa melakukannya dengan string atau dengan format string:
print "Vastaus5 = %s" % functaulu[5]
sumber
Kenapa tidak ada yang suka
repr
?python 3.7.2:
Berhati-hatilah, itu adalah representasi eksplisit. Contoh menunjukkan:
info lebih lanjut di pydocs-repr
sumber