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

时间:2021-01-21 19:38:16

标签: python

特种作战部队社区。

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

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

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

新的代码。如果逻辑关闭(我确定它是),请道歉

3 个答案:

答案 0 :(得分:2)

所以,让我们取一个字符串

s = 'lady'

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

现在,可以使用 slicing operator

完成复制
new_s = s[:-1] + "ies"

答案 1 :(得分:2)

表达式 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 变量,因此不会包含最后一个字符。

答案 2 :(得分:1)

为此使用切片:

word[:-1] + 'ies'

这需要除最后一个字符之外的所有字符,并在其中添加“ies”