簡體   English   中英

更改列表中的第n個項目

[英]Change every nth item in a list

例如,如果我想使第二個大寫和小寫像

original_list = ['FisH', 'Dog', 'cow', 'piG']

desired_list = ['fish', 'DOG', 'cow', 'PIG']

我的解決方法是為上下兩個單詞分別創建一個列表,然后以某種方式將它們加入,但是我知道這是一個不好的方法:

list1 = []
list2 = []

for i in orginal_list[0::2]:
    i = i.lower()
    list1.append(i)


for i in orginal_list[1::2]:
    i = i.upper()
    list2.append(i)

使用enumerate()函數並以2除以 (檢測偶數位置):

original_list = ['FisH', 'Dog', 'cow', 'piG']
result = [w.lower() if not i%2 else w.upper() for i,w in enumerate(original_list)]

print(result)

輸出:

['fish', 'DOG', 'cow', 'PIG']

與您自己的相似,但立即分配切片。

mylist[::2] = map(str.lower, mylist[::2])
mylist[1::2] = map(str.upper, mylist[1::2])

演示:

>>> mylist= ['FisH', 'Dog', 'cow', 'piG']
>>> mylist[::2] = map(str.lower, mylist[::2])
>>> mylist[1::2] = map(str.upper, mylist[1::2])
>>> mylist
['fish', 'DOG', 'cow', 'PIG']

暫無
暫無

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

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