从字符串-Python中删除数字

时间:2012-10-16 00:32:51

标签: python function python-2.7

我正在为高中课程创建一个程序,我们的老师非常具体地了解我们的课程允许的内容。我们使用python 2.x,他只允许if语句,while循环,函数,布尔值和列表。我正在研究一个项目,它将打印一个字符串的反转,然后再次打印相同的反转而没有数字,但我无法弄明白。请帮忙。到目前为止,我有这个......

    def reverse_str(string):
    revstring =('')
        length=len(string)
        i = length - 1
        while i>=0:
            revstring = revstring + string[i]
            i = i - 1
        return revstring
    def strip_digits(string):
        l = [0,1,2,3,4,5,6,7,8,9]
        del (l)  rev_string


    string = raw_input("Enter a string->")
    new_str = rev_str(string)
    print new_str

我无法弄清楚如何正确使用“del”功能,如何从反向字符串中删除列表中的任何项目。谢谢

3 个答案:

答案 0 :(得分:1)

一般来说,您有两个选项可以执行以下任务:

  1. 仔细检查列表中的项目,删除想要保留的项目。

  2. 遍历列表中的项目,将您 想要保留的项目复制到新列表中。返回新列表。

  3. 现在,虽然我通常更喜欢选项(2),但这对您关于del的具体问题没有帮助。要从列表x中删除索引a处的项目,将使用以下语法:

    del a[x]
    

    这会将所有元素从索引x移到左边,以通过删除元素来缩小留下的间隙。如果您要遍历列表中的所有项目,则必须考虑此转变。

答案 1 :(得分:1)

python中的str类型是不可变的(不能就地改变)并且不支持del项目删除功能。

将字符串的字符映射到列表并删除所需的元素并重新构建字符串。

OR

在构建新元素时迭代字符串元素,省略数字。

正确使用del是:

>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]

答案 2 :(得分:0)

你可以重新遍历字符串再次复制它但不复制数字......你也可以想出pythonic方法来做你不允许做的一切。这两种方法都很有用。