2016-10-13 28 views
0

好吧,我有两个列表,它们可以是从一个值到20的任何值,但是它们总是与其他值相同。在for循环中连接数组中的两个单独的字符串

e.g

alphabet = ['a', 'b', 'c', 'd', 'e'] 
numbers = ['1', '2', '3', '4', '5'] 

现在我的目标是创建一个for循环,会经历两个列表,并从每个列表互相添加相应的值。所以..

['a1', 'b2', 'c3', 'd4', '5e'] 

只是举个例子。

names = ['john', 'harry', 'joe'] 
IDs = ['100', '200', '300'] 

output: ['john100', 'harry200', 'joe300'] 

任何人都可以指出我在正确的方向吗?

回答

3

您可以使用zipjoin

[''.join(p) for p in zip(alphabet, numbers)] 
# ['a1', 'b2', 'c3', 'd4', 'e5'] 

至于第二个例子:

[''.join(p) for p in zip(names, IDs)] 
# ['john100', 'harry200', 'joe300'] 
1

作为替代@Psidom一个班轮解决方案,您可以只使用zip()

>>>[i+j for i, j in zip(alphabet, numbers)] 
>>>['a1', 'b2', 'c3', 'd4', 'e5'] 

或者如果您完善使用ar egular for循环:

res = [] 
for i, j in zip(alphabet, numbers): 
    res.append(i+j) 

你也能做出这样比较一般,并把它放在一个函数:

# method one 
def concancate_elements(list1, list2): 
    return [i+j, for i, j in zip(alphabet, numbers)] 

# method two 
def concancate_elements(list1, list2): 
    res = [] 
    for i, j in zip(alphabet, numbers): 
     res.append(i+j) 
    return res 
相关问题