2014-03-13 63 views
3

說,如果我有:如何在串表單中添加列表的相應值?

code = 'aaaa' 
numbercode = '1234' 
Lcode = list(code) 
Lnumbercode = list(numbercode) 

而我想要的是:

a+1 
a+2 
a+3 
a+4 
+2

待辦事項'''code'''和'''numbercode'''總是有相同數量的信嗎? – wnnmaw

+0

我實際上想要8個字符,但認爲只要輸入4 – user3382238

+0

會更容易,但是它們都是8,或者有時候可能是7或9或56? – wnnmaw

回答

3

使用zip遍歷兩者同時進行的iterables:

In [21]: ['%s+%s'%(i, j) for i, j in zip(code, numbercode)] 
Out[21]: ['a+1', 'a+2', 'a+3', 'a+4'] 

,或者您可以使用maplambda as @wnnmaw提到,雖然這會提高TypeError如果codenumbercode具有不同的長度:

In [24]: map(lambda x,y: x+"+"+y, code, numbercode) 
Out[24]: ['a+1', 'a+2', 'a+3', 'a+4'] 
+0

括號內的21是什麼? – user3382238

+0

@ user3382238它是'ipython' shell的提示符,就像cmdline python中的>>> >>> – zhangxaochen

+0

我會把它放在這裏,因爲它不比你的回答好,但它可以用''' 'map(lambda x,y:x +「+」+ y,list(code),list(numbercode))'''如果你喜歡''''lambda'''和''''''''''''''''''''''' – wnnmaw

2
map('+'.join, zip(code, numbercode)) 
+0

注意:這隻適用於兩個迭代長度相等的情況。如果它們不是,將會產生一個「TypeError」。 –

+0

@AlexThornton'zip'會將較長的序列截斷爲較短序列的長度,不會引發TypeError。但是,如果'numbercode = [1,2,3,4]','join'將不能在int上操作。 – IceArdor

+0

@IceArdor是真的,但'numbercode'不是,所以我們不必擔心。 :) – kojiro

相關問題