Saya memiliki masalah berikut:
Saya memiliki string yang berisi beberapa alamat E-Mail. Alamat ini tidak statis. Saya menariknya dari database saya. Jadi misalnya ketika alamat ditarik dan saya mencetak string, hasilnya adalah:
mails = 'email1', 'email2', 'email3'
Sekarang saya ingin membuat daftar dari string. Jadi kode saya adalah:
list = [mails]
Tetapi ketika saya mencetak daftar, saya mendapatkan hasil berikut:
["'email1', 'email2', 'email3'"]
Bagaimana saya bisa menghapus tanda kutip ganda, sehingga hasilnya terlihat seperti ini?
['email1', 'email2', 'email3']
Terima kasih atas jawaban Anda :)
4 jawaban
Menggunakan Regex dan pemahaman daftar:
import re
my_list = [re.sub(r"'([^']+)'", r"\1", x) for x in my_list]
Penjelasan: Apa yang ada di dalam tanda kutip tunggal akan ditambahkan ke grup yang dirujuk oleh string pengganti \1
.
Misalkan Anda memiliki, dalam kode Anda:
mails = 'email1', 'email2', 'email3'
Itu adalah tupel string, mis.
('email1', 'email2', 'email3')
Anda cukup mengonversinya menjadi daftar dengan casting:
mails = list(mails)
Yang akan menghasilkan
['email1', 'email2', 'email3']
Tentu saja, semua tergantung pada data input Anda. Biasanya Anda akan mengambil data dari database Anda dan menambahkannya langsung ke daftar atau beberapa struktur data yang mendukung fungsionalitas yang dimaksudkan pada data itu lebih baik daripada daftar.
Lakukan saja ini:
mails = 'email1', 'email2', 'email3'
mails= list(mails)
print(mails)
Dan sekarang hasilnya akan sama seperti yang Anda inginkan:
['email1', 'email2', 'email3']
import json
a_list = json.dumps(emails)
Bagaimana saya akan melakukannya Jika saya ingin representasi string seperti yang dijelaskan ...
repr()
pada setiap objek dalam. Repr() yang menyebabkan tanda kutip ganda. Ini hanya masalah tampilan dan tidak memengaruhi konten string asli.mails
, yang mendapat nilai dari program Anda? Dan ketika Anda melakukanprint(mails)
, hasil yang Anda lihat di layar persis'email1', 'email2', 'email3'
? Yaitu. Anda tidak melihat bagianmails =
saat Anda menggunakanprint
?