python中的列表理解(努力理解逻辑)

2024-09-26 18:11:27 发布

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

SOF社区

我试图删除字符串中的最后一个字符,并使用列表理解将其替换为“ies”

下面的表达式试图做的只是: 使用索引位置删除最后一个字符,然后将其与“ies”连接

word = [(word.del[-1]) + 'ies' for character in word]

新代码。如果逻辑不正确(我肯定是这样的),我会道歉


Tags: 字符串代码in列表for表达式逻辑字符
3条回答

表达式word = [(word.del[-1]) + 'ies' for character in word]有语法错误,并且不执行您认为的操作:

word.del[-1]使用方括号[]向方法传递参数是不正确的

word.del[-1]如果word是字符串,它没有名为del()的方法,则可以使用del(object)删除对象

假设语法是正确的,这个列表理解所做的是,它接受单词中的每个字符,并将它们列成一个列表,这样每个字符都会附加“ies”,例如,如果word='abc'这将产生['aies','bies','cies']

如果您想让它“使用索引位置删除最后一个字符,然后将其与'ies'连接起来”。您根本不需要列表理解:

>>> word = 'abc'
>>> word = word[:-1]+'ies'
>>> print(word)
abies

word[:-1]+'ies'所做的是,它从开始到最后一个索引(排他)都需要一段word变量,因此最后一个字符将不包括在内

<>所以,让我们用一个字符串

s = 'lady'

现在,在python中,字符串是immutable。这意味着您不能在创建字符串变量s后更改它。因此,您要做的是将s的所有字符一直保留到最后一个字符y为止,但不包括最后一个字符y并在末尾添加ies

现在,可以使用slicing operator进行复制

new_s = s[:-1] + "ies"

为此使用切片:

word[:-1] + 'ies'

除最后一个字符外,这将使用所有字符并向其添加“ies”

相关问题 更多 >

    热门问题