Bagaimana saya bisa mengubah tipe data apa pun menjadi string dengan Python?
struntuk dipanggil tanpa kesalahan?
Bagaimana saya bisa mengubah tipe data apa pun menjadi string dengan Python?
struntuk dipanggil tanpa kesalahan?
Jawaban:
myvariable = 4
mystring = str(myvariable) # '4'
juga, sebagai alternatif coba repr:
mystring = repr(myvariable) # '4'
Ini disebut "konversi" dalam python, dan cukup umum.
str(u'ä')tidak akan berhasil. Namun repr(u'ä')akan berhasil.
struntuk dipanggil tanpa kesalahan?
strdimaksudkan untuk menghasilkan representasi string dari data objek. Jika Anda menulis kelas Anda sendiri dan ingin strbekerja untuk Anda, tambahkan:
def __str__(self):
return "Some descriptive string"
print str(myObj)akan menelepon myObj.__str__().
repradalah metode serupa, yang umumnya menghasilkan informasi tentang info kelas. Untuk sebagian besar objek perpustakaan inti, reprmenghasilkan nama kelas (dan terkadang beberapa informasi kelas) di antara tanda kurung sudut. reprakan digunakan, misalnya, dengan hanya mengetik objek Anda ke panel interaksi Anda, tanpa menggunakan printatau apa pun.
Anda dapat menentukan perilaku objek reprAnda sendiri seperti Anda dapat mendefinisikan perilaku str:
def __repr__(self):
return "Some descriptive string"
>>> myObjdi panel interaksi Anda, atau repr(myObj), akan menghasilkanmyObj.__repr__()
object.__repr__representasi kurung sudut-gaya, tetapi banyak yang paling umum digunakan tidak. Aturan praktis untuk repradalah bahwa jika masuk akal untuk kembali kode Python yang dapat dievaluasi untuk menghasilkan objek yang sama, melakukan itu, seperti str, frozenset, dan sebagian besar builtin lain lakukan, tetapi jika tidak, menggunakan sudut-braket formulir untuk memastikan bahwa apa yang Anda kembalikan tidak mungkin disalahartikan sebagai repr yang dapat dibaca manusia-dan-dapat dievaluasi-sebagai-sumber.
listyang menyertakan dirinya sendiri mengembalikan sesuatu yang tidak hanya terlihat seperti tetapi juga kode yang dapat dievaluasi, yang mengevaluasi ke hal yang salah — tetapi pengembang inti tidak pernah menganggapnya sebagai lisensi untuk memperluas yang sama perilaku ke stdlib.)
struntuk dipanggil tanpa kesalahan?
__str__adalah fungsi yang diwarisi dari kelas objek, yang merupakan root untuk semua kelas lain dengan Python. docs.python.org/3/reference/datamodel.html#object.__str__
Saya melihat semua jawaban merekomendasikan penggunaan str(object). Ini mungkin gagal jika objek Anda memiliki lebih dari karakter ascii dan Anda akan melihat kesalahan sepertiordinal not in range(128) . Ini adalah kasus saya ketika saya mengonversi daftar string dalam bahasa selain bahasa Inggris
Saya menyelesaikannya dengan menggunakan unicode(object)
struntuk dipanggil tanpa kesalahan?
str(object) akan melakukan triknya.
Jika Anda ingin mengubah cara objek dirangkai, tentukan __str__(self)metode untuk kelas objek. Metode tersebut harus mengembalikan str atau objek unicode.
str(any_var)atauany_var.__str__()
timeitmodul), Anda harus menggunakan str(any_var)karena lebih mudah dibaca oleh manusia dan memungkinkan untuk mendapatkan keuntungan dari kasus-kasus ketika any_varmendefinisikan __repr__()tetapi tidak t mendefinisikan __str__().
struntuk dipanggil tanpa kesalahan?
Gunakan strbuilt-in:
x = str(something)
Contoh:
>>> str(1)
'1'
>>> str(1.0)
'1.0'
>>> str([])
'[]'
>>> str({})
'{}'
...
Dari dokumentasi:
Kembalikan string yang berisi representasi objek yang dapat dicetak dengan baik. Untuk string, ini mengembalikan string itu sendiri. Perbedaan dengan repr (object) adalah bahwa str (object) tidak selalu berusaha untuk mengembalikan string yang dapat diterima eval (); tujuannya adalah mengembalikan string yang dapat dicetak. Jika tidak ada argumen yang diberikan, kembalikan string kosong, ''.
struntuk dipanggil tanpa kesalahan?
Cukup gunakan str- misalnya:
>>> str([])
'[]'
Berhati-hatilah jika Anda benar-benar ingin "mengubah" tipe data. Seperti dalam kasus lain (misalnya mengubah iterator dalam satu forlingkaran) ini mungkin memunculkan perilaku yang tidak terduga:
>> dct = {1:3, 2:1}
>> len(str(dct))
12
>> print(str(dct))
{1: 31, 2: 0}
>> l = ["all","colours"]
>> len(str(l))
18
str(var)? apakah itu yang kamu cari?