python - python中的分组列表元素

标签 python python-2.7

list = [('a5', 1), 1, ('a1', 1), 0, 0]

我想将列表的元素分为 3 个,如果列表中缺少第二个或第三个元素,则必须在相应位置附加“无”。

exepected_output = [[('a5', 1), 1,None],[('a1', 1), 0, 0]]

有Pythonic的方法吗?对此不熟悉,任何建议都会有帮助。

最佳答案

这里的方法与其他答案略有不同,对每个元素的类型进行比较,然后将原始列表分成 block 。

li = [('a5', 1), 1, ('a1', 1), 0, 0]

for i in range(0, len(li), 3):
    if type(li[i]) is not tuple:
        li.insert(i, None)
    if type(li[i+1]) is not int:
        li.insert(i+1, None)
    if type(li[i+2]) is not int:
        li.insert(i+2, None)

print [li[i:i + 3] for i in range(0, len(li), 3)]

关于python - python中的分组列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39665472/

相关文章:

python - args 在 python 中被映射到 kwargs

Python 'requests' 添加参数顺序错误

python - 如何在 Python 的单元测试设置阶段实例化对象

python - 使用特定键合并两个(或更多)字典配对列表

python-2.7 - 如何在 PyCharm 中远程开发?

python - 根据美丽汤中 child 的文本值查找标签列表

python - 如何在 python 中打印字典列表中的键和值

python - Matplotlib 绘图以错误的方式绘制

python - 是否有类似于 C++ 中的 std::bitset 的内置位集?

python - Python 中的线性/保序聚类