5 回答
TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用zip,如下所示:
list3 = [a + b for a, b in zip(list1, list2)]
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
使用zip和list comprehension:
In [1968]: list3 = [x + y for x,y in zip(list1, list2)]
In [1968]: list3
Out[1968]: ['namemega', 'age20', 'addressSadia']
TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果您不熟悉 zip 有一個(gè)簡(jiǎn)單的方法適合您,您可以使用此代碼,它將生成您期望的輸出
list1 = ['name', 'age', 'address']
list2 = ['mega', '20', 'Sadia']
list3 = []
for i in range(0,len(list1)):
list3.append(list1[i]+list2[i]) # Concatenation
list3
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果您熟悉 pandas,您可以輕松添加兩個(gè)數(shù)據(jù)框來(lái)創(chuàng)建結(jié)果。嘗試這個(gè)。
import pandas as pd
a = pd.DataFrame(data = ['name', 'age', 'address'])
b = pd.DataFrame(data = ['mega', '20', 'Sadia'])
c = a + b
print (list(c[0]))
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
其他答案已經(jīng)解釋了如何獲得所需的輸出。但是,我認(rèn)為這不是您實(shí)際需要的輸出。您每次都必須將鍵(例如name)與值(例如 `mega)分開,并且通過(guò)在沒(méi)有任何分隔符的情況下連接字符串,您必須知道使用哪個(gè)鍵來(lái)分隔鍵!
相反,您可以使用列表理解或僅使用內(nèi)置函數(shù)來(lái)創(chuàng)建元組列表。這樣,您可以輕松地迭代和分離列表中的鍵和值。
>>> [(a, b) for a, b in zip(list1, list2)]
[('name', 'mega'), ('age', '20'), ('address', 'Sadia')]
>>> list(zip(list1, list2))
[('name', 'mega'), ('age', '20'), ('address', 'Sadia')]
不過(guò),更有用的可能是字典,最重要的是,它還可以讓您輕松獲取特定鍵的值,例如使用d["name"]; 同樣,您可以使用字典理解或內(nèi)置函數(shù):
>>> {a: b for a, b in zip(list1, list2)}
{'name': 'mega', 'age': '20', 'address': 'Sadia'}
>>> dict(zip(list1, list2))
{'name': 'mega', 'age': '20', 'address': 'Sadia'}
您甚至可以考慮創(chuàng)建一個(gè)namedtuple來(lái)創(chuàng)建某種數(shù)據(jù)類。這不僅增加了一點(diǎn)類型安全性,而且還允許使用點(diǎn)表示法獲取值,例如person.name.
>>> import collections
>>> Person = collections.namedtuple("Person", "name age address")
>>> Person(*list2)
Person(name='mega', age='20', address='Sadia')
添加回答
舉報(bào)
