首页 > 解决方案 > 如何在python的循环中创建具有不同值集的多个列表?

问题描述

我很难创建具有不同值集的多个列表。我尝试使用 pandas 读取 csv,然后每 100 条记录我想将它设置在一个列表中,然后直到它到达 csv 的底部。csv 文件示例:

number
1
2
...
100

到目前为止,这是我的代码

import pandas as pd

df = pd.read_csv('test.csv', delimiter=',')

n = 10
m = 0

mylist = []

while n < 25:

    for i in range(m, n):
        test = df.iloc[i]['number']
        mylist.append(test)
    print(mylist)

    print('finish 10 records')

    m += 10
    n += 10

    if n >= 25:

        for i in range(m, n):
            test = df.iloc[i]['number']
            mylist.append(test)
        print(mylist)
        print('finished')
        break

如您所见,代码创建了此输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
finish 10 records
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
finish 10 records
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
finish 10 records

我想要实现的是这个输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
finish 10 records
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
finish 10 records
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
finish 10 records

请问有可能实现吗?

谢谢你

标签: python

解决方案


现在,您将这些值附加到现有mylist变量并按原样打印。您需要确保在每次迭代时清除该列表,以便它开始为空,如下所示:

...

mylist = []
while n < 25:
    for i in range(m, n):
        ...

    print(mylist)
    mylist = []

    ...

或者,您可以在每次迭代时创建一个新列表:

while n < 25:
    l = []

    for i in range(m, n):
        ...
        l.append(...)

    print(l)

推荐阅读