Python del运算符在我的for循环中不工作

2024-09-30 05:33:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python非常陌生,已经阅读了for loops和del运算符的内容,但我仍然不明白为什么我对以下问题的解决方案不起作用:

问题

给定一个字符串,返回一个由第一个字符开始的其他字符组成的新字符串,这样"Hello"生成{}。在

string_bits('Hello') → 'Hlo'
string_bits('Hi') → 'H'
string_bits('Heeololeo') → 'Hello'

解决方案

^{pr2}$

这只返回原始字符串的副本,不删除任何内容-为什么不删除范围内的奇数?在


Tags: 字符串内容helloforstring运算符解决方案hi
3条回答

你不应该改变你正在迭代的东西。您应该提取所需的数据并将其保存到一个新的变量中并返回该变量。在

首先,字符串是不可变的。其次,在迭代iterable时不应该修改它。在

复制或使用过滤器:

new_string = ''.join(c for i, c in enumerate(old_string) if i%2 != 0)

简化版:

^{pr2}$

一种更简单、更酷的方法是用extended slice notation

new_string = old_string[::2]

另外,避免使用str这样的名称,您将隐藏有用的内置函数。在

字符串是不可变的,这意味着您不能只删除任意字符。在

为了解决你的问题,我会用切片表示法

x = 'Heeololeo'

y = x[::2]

print(y) # Hello

您可以找到详细信息here。在

相关问题 更多 >

    热门问题