繁体   English   中英

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

[英]Removing Numbers From String Using List Python

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

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

一个pythonic和简单的方法是:

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

(list comprehension创建一个新字符串,保留所有字符但数字字符)

可以为非listcomp扬声器“翻译”为:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM