5 回答
TA贡献1856条经验 获得超11个赞
使用zip和list comprehension:
In [1968]: list3 = [x + y for x,y in zip(list1, list2)]
In [1968]: list3
Out[1968]: ['namemega', 'age20', 'addressSadia']
TA贡献1873条经验 获得超9个赞
如果您不熟悉 zip 有一个简单的方法适合您,您可以使用此代码,它将生成您期望的输出
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贡献1829条经验 获得超4个赞
如果您熟悉 pandas,您可以轻松添加两个数据框来创建结果。尝试这个。
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贡献1859条经验 获得超6个赞
其他答案已经解释了如何获得所需的输出。但是,我认为这不是您实际需要的输出。您每次都必须将键(例如name)与值(例如 `mega)分开,并且通过在没有任何分隔符的情况下连接字符串,您必须知道使用哪个键来分隔键!
相反,您可以使用列表理解或仅使用内置函数来创建元组列表。这样,您可以轻松地迭代和分离列表中的键和值。
>>> [(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')]
不过,更有用的可能是字典,最重要的是,它还可以让您轻松获取特定键的值,例如使用d["name"]; 同样,您可以使用字典理解或内置函数:
>>> {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'}
您甚至可以考虑创建一个namedtuple来创建某种数据类。这不仅增加了一点类型安全性,而且还允许使用点表示法获取值,例如person.name.
>>> import collections
>>> Person = collections.namedtuple("Person", "name age address")
>>> Person(*list2)
Person(name='mega', age='20', address='Sadia')
添加回答
举报