Add all elements of an iterable to list(将可迭代的所有元素添加到列表)
问题描述
是否有更简洁的方法来执行以下操作?
Is there a more concise way of doing the following?
t = (1,2,3)
t2 = (4,5)
l.addAll(t)
l.addAll(t2)
print l # [1,2,3,4,5]
这是我迄今为止尝试过的:我宁愿避免在参数中传入列表.
This is what I have tried so far: I would prefer to avoid passing in the list in the parameters.
def t_add(t,stuff):
for x in t:
stuff.append(x)
推荐答案
使用 list.extend(),而不是 list.append() 从一个可迭代到列表:
Use list.extend(), not list.append() to add all items from an iterable to a list:
l.extend(t)
l.extend(t2)
或
l.extend(t + t2)
甚至:
l += t + t2
其中 list.__iadd__(就地添加)在底层实现为 list.extend().
where list.__iadd__ (in-place add) is implemented as list.extend() under the hood.
演示:
>>> l = []
>>> t = (1,2,3)
>>> t2 = (4,5)
>>> l += t + t2
>>> l
[1, 2, 3, 4, 5]
但是,如果您只想创建一个 t + t2 列表,那么 list(t + t2) 将是到达那里的最短路径.
If, however, you just wanted to create a list of t + t2, then list(t + t2) would be the shortest path to get there.
这篇关于将可迭代的所有元素添加到列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:将可迭代的所有元素添加到列表
基础教程推荐
- 尝试制作WhatsApp机器人 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
