Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 合并字符串列表和列表列表_Python_List - Fatal编程技术网

Python 合并字符串列表和列表列表

Python 合并字符串列表和列表列表,python,list,Python,List,这可能是重复的,但我找不到具体的答案 我在撰写这个问题时也找到了一个答案,但我想知道是否有更好的选项,或者在不知道哪一项是字符串列表的情况下有效的选项 我的问题: la=['a', 'b', 'c'] lb=[['d','e'], ['f','g'], ['i','j']] 我想: [['a','d','e'], ['b','f','g'], ['c','i','j']] 我发现了以下专门针对我的例子的作品 la=['a', 'b', 'c'] lb=[['d','e'], ['f','g'

这可能是重复的,但我找不到具体的答案

我在撰写这个问题时也找到了一个答案,但我想知道是否有更好的选项,或者在不知道哪一项是字符串列表的情况下有效的选项

我的问题:

la=['a', 'b', 'c']
lb=[['d','e'], ['f','g'], ['i','j']]
我想:

[['a','d','e'], ['b','f','g'], ['c','i','j']]
我发现了以下专门针对我的例子的作品

la=['a', 'b', 'c']
lb=[['d','e'], ['f','g'], ['i','j']]
[ [x] + y for x,y in zip(la, lb)]
[['a', 'd', 'e'], ['b', 'f', 'g'], ['c', 'i', 'j']]
它之所以有效,是因为我在连接之前将字符串列表设置为一个列表,并避免了类型错误:无法连接'str'和'list'对象


有更优雅的解决方案吗?

您可以使用
numpy.column\u stack

>>> la=['a', 'b', 'c']
>>> lb=[['d','e'], ['f','g'], ['i','j']]
>>> import numpy as np

>>> np.column_stack((la,lb))
array([['a', 'd', 'e'],
       ['b', 'f', 'g'],
       ['c', 'i', 'j']], 
      dtype='|S1')

如果你想要一个表达式,我想没有比上面使用zip更好的了。如果您想显式地将la元素插入lb元素的头部,我会这样做

for i in range( len(la) ):
    lb[i].insert(0, la[i])
这样就不必知道zip是什么或做什么了。也可以先检查一下:

if len(la) != len(lb) : raise IndexError, "List lengths differ"
如果没有这一点,当lb比la长时,它将“起作用”。顺便说一句,这与wrt角落案例/鸭子类型不完全相同。使用insert似乎比使用“+”更安全,insert方法应该只存在于类似列表的对象中

另外,纯粹就个人而言,我会把上面的内容写在一行上

for i in range( len(la) ): lb[i].insert(0, la[i])

“有什么比自然的单线解决方案更优雅呢?”约翰科勒曼同意,没有比这更好的了this@hSchroedl答案是如此自然,以至于我在阅读问题的第一部分后30秒内将其写下来并作为答案提交,但当我看到OP已经有了答案时,立即删除了我的答案,这让我想知道问题的重点。你认为是重复的问题是什么?如果项目不是字符串列表会发生什么?为什么要否决投票?我的回答有问题吗?我很高兴听到我的错误!