所以我试图使用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)
答案 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)