簡體   English   中英

python 中的列表理解(努力理解邏輯)

[英]list comprehension in python (struggling to understand the logic)

SOF 社區。

我正在嘗試刪除字符串中的最后一個字符並使用列表理解將其替換為“ies”。

下面的表達式試圖做的就是:使用索引 position 刪除最后一個字符,然后將其與“ies”連接起來。

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

代碼新手。 抱歉,如果邏輯關閉(我確定是這樣)

所以,讓我們拿一個字符串

s = 'lady'

現在,在 python 中,字符串是immutable的。 這樣,這意味着一旦創建字符串變量s就不能更改它。 因此,您想要做的實際上是取s所有字符,直到但不包括最后一個字符y並在末尾添加ies

現在,可以使用slicing operator完成復制

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

表達式word = [(word.del[-1]) + 'ies' for character in word]有語法錯誤,並且沒有按照您的想法執行:

word.del[-1]使用方括號 [] 將 arguments 傳遞給方法是不正確的

word.del[-1]如果 word 是一個字符串,它沒有調用 del() 的方法,你可以使用 del(object) 刪除一個 object 你

假設語法是正確的,這個列表理解的作用是它獲取單詞中的每個字符並制作它們的列表,以便每個字符都附加'ies',例如如果word='abc' this 將產生['aies','bies','cies']

如果您希望它“使用索引 position 刪除最后一個字符,然后將其與 'ies' 連接起來。” 你根本不理解列表:

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

word[:-1]+'ies'作用是從開頭到最后一個索引(不包括)需要一片 word 變量,因此最后一個字符將不包括在內。

為此使用切片:

word[:-1] + 'ies'

這需要除最后一個字符之外的所有字符並在其中添加“ies”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM