2016-01-16 110 views
1

我想轉換一個列表,如:轉換列表轉換爲字符串的序列三倍

["Red", "Green", "Blue"] 

成字符串三元的元組序列:

[("RED", "Red", ""), ("GREEN", "Green", ""), ("BLUE", "Blue", "")] 

直到現在我總是用這方法:

def list_to_items(lst): 
    items = [] 
    for i in lst: 
     items.append((i.upper(), i, "")) 
    return items 

但它感覺有點難看。有沒有更好的/更pythonic的方式做到這一點?

回答

2

你可以使用一個理解:

def list_to_items(lst): 
    return [(item.upper(), item.title(), '') for item in lst] 
3

類似列出的理解,但有點不同。

這是地圖功能。

lst = ["Red", "Green", "Blue"] 
new_lst = map(lambda x: (x.upper(), x, ""), lst) 

它基本上根據您輸入的函數作爲第一個參數逐個更改列表中的每個元素。這是在這種情況下:

lambda x: (x.upper(), x, "") 

如果你沒有一個想法是什麼拉姆達是,它幾乎就像在高中數學:

f(x) = (x.upper(), x, "") # basically defines a function in one line. 
+0

其他答案不要使用newlist店面 – Arman

+1

是的,這是OP的選擇重新定義** **善堂。或者將這個代碼插入一個函數中,就像他在問題中所做的那樣。 – Rockybilly