簡體   English   中英

如何在python列表中的所有其他項目中添加文本?

[英]How do I add text to every other item in a python list?

我有一個類似的清單:

mylist = ["1", "2", "3", "4", "5"]

我想向其他所有項目添加一些文本,因此看起來像這樣:

mylist = ["1a", "2", "3a", "4", "5a"]

我寫了這個,對每個項目都很好用。 如何使它僅適用於其他所有項目?

mylist2 = ["a" + item for item in mylist]

一種方法是:

mylist = ["1", "2", "3", "4", "5"]
res = [x + ('a' if i%2 == 0 else '') for i, x in enumerate(mylist)]

結果是:

['1a', '2', '3a', '4', '5a']

這種方法利用了以下事實:要除以2時要更改的術語的索引的余數為1。請參見

嘗試這個:

for i in range(0, len(mylist), 2):
    mylist[i] = mylist[i] + "a"

編輯1:

for i in range(0, len(mylist), 2):
    mylist[i] += "a"

使用enumerate和模以三進制測試奇數或偶數。

mylist = ["1", "2", "3", "4", "5"]
mylist2 = [item if i%2 else "a" + item for i,item in enumerate(mylist)]

結果:

>>> mylist2
['a1', '2', 'a3', '4', 'a5']

得到1a ,依此類推...只需切換"a" + item item + "a"

有點奇怪的解決方案,它使用了迭代器:

>>> from itertools import cycle
>>> mylist = ["1", "2", "3", "4", "5"]
>>> suffix = cycle(["a", ""])
>>> [l + s for l, s in zip(mylist, suffix)]
['1a', '2', '3a', '4', '5a']

編輯

正如Netwave在評論中所建議的那樣,這是非常超級的Python解決方案!

>>> import itertools, operator
>>> list(map(operator.add, mylist, itertools.cycle(("a", ""))))
['1a', '2', '3a', '4', '5a']

mylist = ["1", "2", "3", "4", "5"] text_list = [str(x) + 'a' if i % 2 == 0 else x for i, x in enumerate(mylist)]

暫無
暫無

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

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