我正在为高中课程创建一个程序,我们的老师非常具体地了解我们的课程允许的内容。我们使用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”功能,如何从反向字符串中删除列表中的任何项目。谢谢
答案 0 :(得分:1)
一般来说,您有两个选项可以执行以下任务:
仔细检查列表中的项目,删除不想要保留的项目。
遍历列表中的项目,将您 想要保留的项目复制到新列表中。返回新列表。
现在,虽然我通常更喜欢选项(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方法来做你不允许做的一切。这两种方法都很有用。