2016-10-10 72 views
-1

我試圖用一個列表,如小寫字母和數字: [(1,4),(2,2)]使用列表生成的python

要獲得: [(一,4 ),(b,2)]

我想使用'string.ascii_lowercase'我將如何在Python3中實現這一點,這是爲了獲得最少的字符可能的編碼挑戰。

感謝您的幫助!

+0

與其讓別人解決你的編碼挑戰,不是讓他們開始就不容易嗎? – jonrsharpe

回答

0

我不打算爲你解決它,但我建議你看看chrord功能。請注意,「a」的ASCII代碼是97,所以要將1轉換爲「a」,您必須將96添加到它。

+0

謝謝!只需要一個地方開始吧! –

+0

樂意幫忙! :)隨時upvote或接受我的答案。 ;) –

0

我建議你按照上面B.Eckles給出的建議,因爲你會更好地學習,並可能找到一個更短的(字符方式)解決方案。

但是,如果你想堅持使用string.ascii_lowercase,下面的代碼片段可能是從開始有用:

import string 

a = [(1,4),(2,2)] 
b = [] 
for (first, second) in a: 
    b.append(
     (string.ascii_lowercase[(first-1) % len(string.ascii_lowercase)], 
     second)) 

print b 

在這種情況下,打印的解決辦法是:

[('a', 4), ('b', 2)] 

我已經插入模塊(即%len(string.ascii_lowercase))以避免出界限訪問。只要小心,值0就會以這種方式產生'z'。

希望它有幫助!