Saya memiliki beberapa string alfanumerik seperti ini
listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', '000alphanumeric']
Output yang diinginkan untuk menghapus nol tertinggal adalah:
listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
Output yang diinginkan untuk awalan nol di belakangnya adalah:
listOfNum = ['231512-n','1209123100000-n00000','alphanumeric0000', 'alphanumeric']
Output keinginan untuk menghapus nol di depan dan di belakang adalah:
listOfNum = ['231512-n','1209123100000-n', 'alphanumeric', 'alphanumeric']
Untuk saat ini saya sudah melakukannya dengan cara berikut, mohon saran cara yang lebih baik jika ada:
listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', \
'000alphanumeric']
trailingremoved = []
leadingremoved = []
bothremoved = []
# Remove trailing
for i in listOfNum:
while i[-1] == "0":
i = i[:-1]
trailingremoved.append(i)
# Remove leading
for i in listOfNum:
while i[0] == "0":
i = i[1:]
leadingremoved.append(i)
# Remove both
for i in listOfNum:
while i[0] == "0":
i = i[1:]
while i[-1] == "0":
i = i[:-1]
bothremoved.append(i)
s = '0'
?s.strip("0") or "0"
: jika string Anda berubah menjadi string kosong, itu akan dievaluasi sebagaiFalse
oleh atau dan akan diganti dengan string yang diinginkan"0"
Hapus di depan + di belakang '0':
Hapus awalan '0':
Hapus tanda '0':
sumber
Anda cukup melakukan ini dengan bool:
sumber
alphanumeric0000
seperti yang diminta OP.Apakah Anda mencoba dengan strip () :
sumber
str.strip
adalah pendekatan terbaik untuk situasi ini, tetapimore_itertools.strip
juga merupakan solusi umum yang menghapus elemen awal dan akhir dari iterable:Kode
Detail
Perhatikan, di sini kita menghapus leading dan trailing
"0"
s di antara elemen lain yang memenuhi predikat. Alat ini tidak terbatas pada string.Lihat juga dokumen untuk lebih banyak contoh
more_itertools.strip
: lepaskan kedua ujungnyamore_itertools.lstrip
: lepaskan ujung kirimore_itertools.rstrip
: lepaskan ujung kananmore_itertools
adalah pustaka pihak ketiga yang dapat dipasang melalui> pip install more_itertools
.sumber
Dengan asumsi Anda memiliki tipe data lain (dan tidak hanya string) dalam daftar Anda, coba ini. Ini menghapus nol di belakang dan di depan dari string dan membiarkan tipe data lain tidak tersentuh. Ini juga menangani kasus khusus s = '0'
misalnya
sumber