猿问

如何将两个列表组合成一个句子

list1 = ['name', 'age', 'address']
list2 = ['mega', '20', 'Sadia']

预期输出:

['namemega', 'age20', 'addressSadia']


qq_花开花谢_0
浏览 154回答 5
5回答

米琪卡哇伊

您可以使用zip,如下所示:list3 = [a + b for a, b in zip(list1, list2)]

呼唤远方

使用zip和list comprehension:In [1968]: list3 = [x + y for x,y in zip(list1, list2)]In [1968]: list3Out[1968]: ['namemega', 'age20', 'addressSadia']

眼眸繁星

如果您不熟悉 zip 有一个简单的方法适合您,您可以使用此代码,它将生成您期望的输出list1 = ['name', 'age', 'address']list2 = ['mega', '20', 'Sadia']list3 = []for i in range(0,len(list1)):  list3.append(list1[i]+list2[i]) # Concatenationlist3

浮云间

如果您熟悉 pandas,您可以轻松添加两个数据框来创建结果。尝试这个。import pandas as pda = pd.DataFrame(data = ['name', 'age', 'address'])b = pd.DataFrame(data = ['mega', '20', 'Sadia'])c = a + bprint (list(c[0]))

BIG阳

其他答案已经解释了如何获得所需的输出。但是,我认为这不是您实际需要的输出。您每次都必须将键(例如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')
随时随地看视频慕课网APP

相关分类

Python
我要回答