Apakah ini akan berhasil untuk situasi Anda?
>>> s = '12abcd405'
>>> result = ''.join([i for i in s if not i.isdigit()])
>>> result
'abcd'
Ini menggunakan pemahaman daftar, dan apa yang terjadi di sini mirip dengan struktur ini:
no_digits = []
# Iterate through the string, adding non-numbers to the no_digits list
for i in s:
if not i.isdigit():
no_digits.append(i)
# Now join all elements of the list with '',
# which puts all of the characters together.
result = ''.join(no_digits)
Seperti yang ditunjukkan oleh @AshwiniChaudary dan @KirkStrauser, Anda sebenarnya tidak perlu menggunakan tanda kurung dalam satu baris, membuat bagian di dalam tanda kurung menjadi ekspresi generator (lebih efisien daripada pemahaman daftar). Meskipun ini tidak sesuai dengan persyaratan untuk tugas Anda, itu adalah sesuatu yang pada akhirnya harus Anda baca :):
>>> s = '12abcd405'
>>> result = ''.join(i for i in s if not i.isdigit())
>>> result
'abcd'
re:result = re.sub(r'[0-9]+', '', s)