python - 如何在 block 文件中写入列表列表

标签 python python-3.x list file

我有如下所示的列表列表:

listThing = [['apple','mango','cherry'],
             ['dog','cat','bird'],
             ['rose','jasmine','sunflower']
             ['hospital','house','school']
             ['chair','table','cupboard']
             ['book','pencil','pen']]

我想将该列表写入文件数为预定值的文件中。那么每个文件中的列表个数就是所有列表个数除以文件个数。所以如果:

number of file = 3
number of list in each file = number of all lists/number of file = 6/3 = 2

输出将如下所示:

file1.txt

apple
mango
cherry
dog
cat
bird

file2.txt

rose
jasmine
sunflower
hospital
house
school

file3.txt

chair
table
cupboard
book
pencil
pen

这是我试过的:

import math

allList = len(listThing)
numFile = 3
listInFile = math.ceil(allList/numFile)

for i in range(listInFile):
    with open('file'+str(i)+'.txt', 'w') as out:
        for n in range(listInFile):
            # I don't know what should I do next

我不知道如何解决这个问题。我希望有人能帮我解决这个问题。谢谢

最佳答案

import math    

list_of_lists = [['apple', 'mango', 'cherry'],
                 ['dog', 'cat', 'bird'],
                 ['rose', 'jasmine', 'sunflower'],
                 ['hospital', 'house', 'school'],
                 ['chair', 'table', 'cupboard'],
                 ['book', 'pencil', 'pen']]

num_files = 3
all_lists = len(list_of_lists)

lists_per_file = math.ceil(all_lists / num_files)

for i in range(1, num_files + 1):
    with open("file{}.txt".format(i), "w") as file:
        lst_idx = (i-1)*lists_per_file
        for lst in list_of_lists[lst_idx:lst_idx+lists_per_file]:
            for word in lst:
                file.write("{}\n".format(word))

关于python - 如何在 block 文件中写入列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56633164/

相关文章:

python - 字典值的总和列表

python - 将统一字符串转换为字典

python - 使用 pd.eval() 方法获取 NotImplementedError

python - Django预保存信号

python - 在python中生成具有加权概率的随机数

python-3.x - 用于 paramiko ssh 连接的 Python 单元测试

python - 有没有办法在删除后恢复内置函数?

python - 加入列表由多个列表组成,这些列表在 python 中具有相同的值

python - 如何强制 pprint 每行打印一个列表/元组/字典元素?

python - Pandas,将日期列添加到系列中