0

我正在为高中课程创建一个程序,我们的老师对我们的程序允许的内容非常具体。我们使用 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”函数,如何从反向字符串中删除列表中的任何项目..谢谢

4

3 回答 3

1

一般来说,对于这样的任务,您有两种选择:

  1. 遍历列表中的项目,删除您不想保留的项目。

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

现在,虽然我通常更喜欢选项(2),但这对您关于del. x要从list 中删除 index 处的项目a,可以使用以下语法:

del a[x]

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

于 2012-10-16T00:36:02.657 回答
1

python中的typestr是不可变的(不能原地改变),不支持delitem删除功能。

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

或者

遍历字符串元素,同时构建一个新元素,省略数字。

的正确用法del是:

>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]
于 2012-10-16T00:40:33.693 回答
0

您可以遍历字符串,再次复制它,但不复制数字......您还可以找出pythonic方式来做所有您不允许做的事情,这会很有趣。这两种方法都很好知道。

于 2012-10-16T00:37:11.823 回答