循环列表时出现问题

问题描述 投票:0回答:1

我遇到的问题如下,我有一个初始列表,我试图将其分成多个列表,如下所示:

['28/02/2025', '16/03/2025', '16', '14', 'directos', '1.093.026', '29/10/2024', '25/11/2024', '27', '26', 'con', '1.333.784', '28/02/2025', '16/03/2025', '16', '14', 'directos', '1.444.026', '29/10/2024', '25/11/2024', '27', '29', 'con', '1.283.784']

我想要得到这样的东西,这样我就可以更好地处理数据:

[['28/02/2025', '29/10/2024', '28/02/2025', '29/10/2024'], ['16/03/2025', '25/11/2024', '16/03/2025', '25/11/2024'], ['16', '27', '16', '27'], ['14', '26', '14', '29'], ['directos', 'con', 'directos', 'con'], ['1.093.026', '1.333.784', '1.444.026', '1.283.784']]

我所做的如下:

listota = ['28/02/2025', '16/03/2025', '16', '14', 'directos', '1.093.026', '29/10/2024', '25/11/2024', '27', '26', 'con', '1.333.784', '28/02/2025', '16/03/2025', '16', '14', 'directos', '1.444.026', '29/10/2024', '25/11/2024', '27', '29', 'con', '1.283.784']

p = 0
listas = [[] for _ in range(6)] 
for i, elemento in enumerate(listota):
  if p > 4:
    p = 0
  else:
    listas[p].append(elemento)
    p += 1

当我

print(listas)
时,这是输出:

[['28/02/2025', '29/10/2024', '28/02/2025', '29/10/2024'], ['16/03/2025', '25/11/2024', '16/03/2025', '25/11/2024'], ['16', '27', '16', '27'], ['14', '26', '14', '29'], ['directos', 'con', 'directos', 'con'], []]

最后一张清单,应该有价格的清单永远不会附加,我真的不知道为什么。希望有人注意到我做错了什么。

python list
1个回答
0
投票

if
比较不正确。您想在 5 而不是 4 之后返回到零,并且 always 想要执行
else:
部分,因此删除
else:
行:

listota = ['28/02/2025', '16/03/2025', '16', '14', 'directos', '1.093.026', '29/10/2024', '25/11/2024', '27', '26', 'con', '1.333.784', '28/02/2025', '16/03/2025', '16', '14', 'directos', '1.444.026', '29/10/2024', '25/11/2024', '27', '29', 'con', '1.283.784']

p = 0
listas = [[] for _ in range(6)] 
for i, elemento in enumerate(listota):
    if p > 5:  # 5 not 4.
        p = 0
    # remove else
    listas[p].append(elemento)  # unindent
    p += 1                      # unindent

print(listas)

输出:

[['28/02/2025', '29/10/2024', '28/02/2025', '29/10/2024'], ['16/03/2025', '25/11/2024', '16/03/2025', '25/11/2024'], ['16', '27', '16', '27'], ['14', '26', '14', '29'], ['directos', 'con', 'directos', 'con'], ['1.093.026', '1.333.784', '1.444.026', '1.283.784']]
© www.soinside.com 2019 - 2024. All rights reserved.