如何在Python中连接两个列表?
例:
listone = [1, 2, 3]
listtwo = [4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
预期结果:
>>> joinedlist
[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud) 我有两个列表,第一个列表保证只包含一个列表而不是第二个列表.我想知道创建一个新列表的最Pythonic方法,其中偶数索引值来自第一个列表,其奇数索引值来自第二个列表.
# example inputs
list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
# desired output
['f', 'hello', 'o', 'world', 'o']
Run Code Online (Sandbox Code Playgroud)
这有效,但并不漂亮:
list3 = []
while True:
try:
list3.append(list1.pop(0))
list3.append(list2.pop(0))
except IndexError:
break
Run Code Online (Sandbox Code Playgroud)
如何实现这一目标呢?什么是最Pythonic方法?
我想在python中合并两个列表,列表具有不同的长度,因此较短列表的元素在最终列表中的间隔尽可能相等.即我想采取[1, 2, 3, 4]并['a','b']合并它们以获得类似的列表[1, 'a', 2, 3, 'b', 4].它需要能够与那些不准确的倍数太名单功能,所以它可以采取[1, 2, 3, 4, 5]与['a', 'b', 'c']生产[1, 'a', 2, 'b', 3, 'c', 4, 5]或相似.它需要保留两个列表的顺序.
我可以通过一个冗长的蛮力方法看到如何做到这一点但是因为Python似乎有很多优秀的工具可以做各种我不知道的聪明的事情(还)我想知道是否还有其他的东西优雅我可以使用?
注意:我使用的是Python 3.3.
我希望能够交错两个可能长度不等的列表.我有的是:
def interleave(xs,ys):
a=xs
b=ys
c=a+b
c[::2]=a
c[1::2]=b
return c
Run Code Online (Sandbox Code Playgroud)
这适用于长度相等或只有+/- 1的列表.但是如果让我们说xs = [1,2,3]和ys = ["hi,"bye","no","yes","why"]这条消息出现:
c[::2]=a
ValueError: attempt to assign sequence of size 3 to extended slice of size 4
Run Code Online (Sandbox Code Playgroud)
如何使用索引修复此问题?或者我必须使用for循环?编辑:我想要的是让额外的值出现在最后.
我有两个列表,我希望以交替方式组合它们,直到一个用完,然后我想继续添加更长列表中的元素.
阿卡.
list1 = [a,b,c]
list2 = [v,w,x,y,z]
result = [a,v,b,w,c,x,y,z]
Run Code Online (Sandbox Code Playgroud)
类似于这个问题(Pythonic方式以交替的方式组合两个列表?),除了这些列表在第一个列表用完后停止组合:(.