Bar*_*ski 26 python tuples list
是否有更简洁的方式来做以下事情?
t = (1,2,3)
t2 = (4,5)
l.addAll(t)
l.addAll(t2)
print l # [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的:我宁愿避免在参数列表中传递.
def t_add(t,stuff):
for x in t:
stuff.append(x)
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 51
使用list.extend(),而不是list.append()将迭代中的所有项添加到列表中:
l.extend(t)
l.extend(t2)
Run Code Online (Sandbox Code Playgroud)
要么
l.extend(t + t2)
Run Code Online (Sandbox Code Playgroud)
甚至:
l += t + t2
Run Code Online (Sandbox Code Playgroud)
其中list.__iadd__(就地添加)list.extend()在引擎盖下实现.
演示:
>>> l = []
>>> t = (1,2,3)
>>> t2 = (4,5)
>>> l += t + t2
>>> l
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
但是,如果您只是想创建一个列表t + t2,那么list(t + t2)这将是到达那里的最短路径.
stuff.extend 是你想要的.
t = [1,2,3]
t2 = [4,5]
t.extend(t2)
# [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
或者你可以做到
t += t2
Run Code Online (Sandbox Code Playgroud)