Python在列表中插入项目保持顺序

标签 python

我有一个关于元组列表的问题。

test = [('a', 1, 40), ('a', 2, 5), ('b', 2, 6), ('b', 3, 1)]

我基本上想将 ('a', 3, 0)('b', 2, 0) 添加到列表中。最好按照正确的顺序,如下所示:

test = [('a', 1, 40), ('a', 2, 5), ('a',3 , 0), ('b' ,1 , 0) ('b', 2, 6), ('b', 3, 1)]

有人有一个很好且有效的想法如何做到这一点吗?我现在正在使用 python 3.5。请注意,实际问题有点困难,因此手动添加点并不是一个明智的主意,因为它可能会有很大差异。

最佳答案

您始终可以使用bisect.insort将任何可比较的元素插入到排序列表中。

>>> import bisect
>>> bisect.insort(test, ('a', 3, 0))
>>> bisect.insort(test, ('b', 2, 0))
>>> test
[('a', 1, 40), ('a', 2, 5), ('a', 3, 0), ('b', 2, 0), ('b', 2, 6), ('b', 3, 1)]

关于Python在列表中插入项目保持顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35624734/

相关文章:

python - 如何使用 Django 用数据库中的数据填充 HTML 下拉列表?

python - 我可以避免在 Flask 和 SQLAlchemy 中循环导入吗

python - 更改创建 .pyc 文件的目录

python - 如何使用 Smartsheets API Python 检索文件夹树

python - 创建多个销售订单

python - 热插拔 python 代码(鸭式函数?)

Python CSV——优化CSV读写

python - Pandas 如何将多个功能应用于数据框

python - py2exe 安装程序崩溃

python - 唯一编号的代码 顺序组合