簡體   English   中英

如何在列表中每個元素的末尾添加字符

[英]How to add characters at the end of each element in a list

My_List = ["adopt", "bake", "beam"]

問題:對於 My_List 中的每個單詞,如果單詞以“e”結尾,則在單詞末尾添加“d”以使其過去時。 否則,添加 'ed' 使其過去時。 將這些過去時詞保存到名為 Past_Tense 的列表中。

您可以使用列表endswithf-stringsd添加到以e結尾的字符串中,可以使用endswith str方法進行檢查:

[f'{i}d' if i.endswith('e') else f'{i}ed' for i in My_List]
# ['adopted', 'baked', 'beamed']

對於 python 版本3.6 <使用:

['{}d'.format(i) if i.endswith('e') else '{}ed'.format(i) for i in My_List]

因此,這里有一些入門方法:

for word in My_List:
    # do something with your word

word[-1]給你的最后一個字符word

您可以像這樣將字符串連接在一起: "{} something else here".format(word)

將所有這些按邏輯順序放在一起,您可以自己解決問題! 哪個更有趣!

這是一種方法:

My_List = ["adopt", "bake", "beam"]
res = [word + 'd' if word[-1] == 'e' else word + 'ed' for word in My_List]
# ['adopted', 'baked', 'beamed']
Past_Tense = [ w + "e"*(w[-1]!="e") + "d" for w in My_List ]

或者

Past_Tense = [ w + 'ed'[w[-1]=="e":] for w in My_List ]

為那些喜歡打高爾夫球的人編寫一些代碼。 但是不要在生產中這樣做。 你會被永遠憎恨。 我不承擔任何責任:)

>>> l
['adopt', 'bake', 'beam']
>>> x = [x+['ed', 'd'][x.endswith('e')] for x in l]
>>> x
['adopted', 'baked', 'beamed']

嘗試這個 :

Past_Tense = [k+'d' if k.endswith('e') else k+'ed' for k in My_List]

輸出

['adopted', 'baked', 'beamed']
past_tense=[]
for i in words:
    if i[-1]=='e':
         words.append('d')
    else:
         words.append('ed')
past_tense=words
words = ["adopt", "bake", "beam", "confide", "grill", "plant", "time", "wave", "wish"]
past_tense=[]
for word in words:
    if word[-1]=='e':
        past_tense=[word+'d']
        print(past_tense)
    else:
        past_tense=[word+'ed']
    print(past_tense)         

我想像我這樣的初學者會這樣做:

words = ["adopt", "bake", "beam", "confide", "grill", "plant", "time", "wave", "wish"]

length = len(words)                 
past_tense = []          
strLen = 0                        

for i in range(0, length):         
    str = words[i]                  
    strLen = len (str)            
    if str[-1] == 'e':
        words[i] = words[i] + 'd'
    else:
        words[i] = words[i] + 'ed'
    past_tense = past_tense + [words[i]]
print(past_tense)   

問題:對於單詞中的每個單詞,如果單詞以“e”結尾,則在單詞末尾添加“d”以使其過去時。 否則,添加 'ed' 使其過去時。 將這些過去時詞保存到名為 past_tense 的列表中。

  1. 一個單詞列表被分配給變量“words”。
  2. 使用 [] 創建一個新的空列表並將其分配給變量“past_tense”。 過去時詞將從列表“詞”中的現在時詞轉換並添加到此列表中。
  3. 迭代器“word”從列表“words”中的第一個字符串開始迭代可迭代的“words”。 “for 循環”確保后續縮進命令將在序列中的每個單詞(9 個單詞)上重復。
  4. 從“words”中的第一個單詞開始,“if”語句計算每個單詞中的最后一個字符。 word[-1] 表示單詞中的最后一個字符(索引運算符)。 如果條件評估為真(如果單詞中的最后一個字母是“e”),則將該單詞添加(使用“append”方法)到列表“past_tense”中,並在末尾連接“d” . 如果條件被評估為假(最后一個字母不是“e”),則將應用“else”條件,並且該詞將被添加到過去時態列表中,並在末尾連接“ed”。
  5. 當 for 循環在最后一個單詞被評估后結束時,python 將退出循環。 然后,使用打印語句,列表 "past_tense" 的輸出將是: ['adopted', 'baked', 'beamed', 'confided', 'grilled', 'planted', 'timed', 'waved' ,'希望']
words = ["adopt", "bake", "beam", "confide", "grill", "plant", "time", "wave", "wish"] 
past_tense = [] 
for word in words: 
    if word[-1] == "e":
        past_tense.append(word + "d")
    else:
        past_tense.append(word + "ed")
print(past_tense)

完成收藏的另一種方式。 通過map()函數:

My_List = ["adopt", "bake", "beam"]

def ed(word): return word+"d" if word[-1]=="e" else word+"ed"

Past_Tense = list(map(ed, My_List)) # ['adopted', 'baked', 'beamed']

這是回答這個問題的正確方法......

wrds = ["end", 'work', "play", "start", "walk", "look", "open", "rain", "learn", "clean"]

past_wrds = []

for i in wrds:
    past_wrds.append(i+'ed')

暫無
暫無

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

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