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/