[英]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.