Python 如何按元素连接两个列表并创建新列表?
我有两个列表,其中包含一些引用及其作者。如何创建包含两个列表中的两个元素的新列表Python 如何按元素连接两个列表并创建新列表?,python,list,Python,List,我有两个列表,其中包含一些引用及其作者。如何创建包含两个列表中的两个元素的新列表 quotes=[ “艰难的日子不会持续,坚强的人会。”, “勇气比恐惧早一步。” ] 作者=[ “罗伯特·H·舒勒”, “科尔曼杨” ] 我要它回来 quotes\u列表=[ 艰难的日子不会持续,坚强的人会持续。-罗伯特·H·舒勒, “勇气比恐惧早一步.-科尔曼·杨” ] 如有任何解释,将不胜感激。谢谢。正是您想要的 zip(quotes, authors) 您可以使用和执行以下操作: 输出 ['-'.joi
quotes=[
“艰难的日子不会持续,坚强的人会。”,
“勇气比恐惧早一步。”
]
作者=[
“罗伯特·H·舒勒”,
“科尔曼杨”
]
我要它回来
quotes\u列表=[
艰难的日子不会持续,坚强的人会持续。-罗伯特·H·舒勒,
“勇气比恐惧早一步.-科尔曼·杨”
]
如有任何解释,将不胜感激。谢谢。正是您想要的
zip(quotes, authors)
您可以使用和执行以下操作:
输出
['-'.join(x)for x in zip(引号,作者)]
zip
允许您同时在两个列表的元素上循环,并且'-'.join()
组合由破折号分隔的元素并将它们连接起来:
list(map(" - ".join, zip(quotes, authors)))
您要查找的是
str.join
和zip
尽可能多的州:
使用map
使此操作快速且'-'。join
获取一个字符串序列,并将它们连接到一个由初始字符串分隔的序列,而zip
使多个序列可供选择
>>> quotes = ['Tough times don’t last. Tough people do.', 'Courage is one step ahead of fear.']
>>> authors = ['Robert H. Schuller','Coleman Young']
>>> list(map(' - '.join, zip(quotes, authors))))
['Tough times don’t last. Tough people do. - Robert H. Schuller', 'Courage is one step ahead of fear. - Coleman Young']
或者,您也可以使用列表理解而不是映射,这是更可取的方法,因为它更可读,在大多数情况下更优化,尽管我认为映射应该更快,但我还没有测试:
[' - '.join(*s) for s in zip(quotes, authors)]
通过使用
zip()
、f字符串和列表理解,您可以实现所描述的确切行为:
quotes\u list=[f“{quote}-{author}”表示引用,作者在zip中(quotes,author)]
说明:
zip()
函数创建一个元组列表,其中第i个元组包含每个列表中的第i个元素
zip(引用,作者)=[(“艰难的时光不会持续,坚强的人会持续。”,“罗伯特·H·舒勒”),(“勇气比恐惧早一步。”,“科尔曼·杨”)]
然后,我们只需迭代列表并使用f字符串来实现精确的格式设置
>>> quotes = ['Tough times don’t last. Tough people do.', 'Courage is one step ahead of fear.']
>>> authors = ['Robert H. Schuller','Coleman Young']
>>> list(map(' - '.join, zip(quotes, authors))))
['Tough times don’t last. Tough people do. - Robert H. Schuller', 'Courage is one step ahead of fear. - Coleman Young']
[' - '.join(*s) for s in zip(quotes, authors)]