使用列表Python从字符串中删除数字

时间:2017-01-22 21:01:34

标签: python list digits

所以我试图使用0,9中的数字列表从字符串中删除数字。我已经试图解决这个问题已经有一段时间了,但是我还没有把它弄清楚,我会把代码放在这里,希望有人可以帮我解决这个问题。我不想使用我不熟悉的方式,例如lambda或我之前在stackoverflow上看到的东西。

string = input("Type a string: ")

numbers = ["0","1","2","3","4","5","6","7","8","9"]
start = 0

for i in range(len(string)):
    if(string[i] == numbers[start]):
        string.remove(i)
    else:
        print("Banana")

print(string)

1 个答案:

答案 0 :(得分:3)

你不应该迭代&尝试在迭代时更改对象。字符串是不可变的这一点很复杂(当字符串内容发生变化时会创建新引用)。好吧,不是一个好的解决方案,即使你能做到这一点,也不会表现出色。

一种pythonic&这样做的简单方法是:

new_string = "".join([x for x in string if not x.isdigit()])

(列表理解,它创建一个新字符串,保留所有字符但数字字符)

对于非listcomp扬声器,

可以“翻译”为:

l = []
for x in string:
    if not x.isdigit():
       l.append(x)
new_string = "".join(l)