如何将几个列表中的特定对象附加到新文件中?

2024-05-20 15:45:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数百个包含不同压力的数字列表,我需要将每个列表中的第5个对象附加到一个新文件中。该程序所做的是遍历数百个文本文件,每个文件中包含数千行数据。程序遍历路径中的每个文件,并将数据分为两个列表:质量电荷和压力。我的代码是:

import os

os.chdir('file_path')
path = os.listdir('file_path')
for file in path:
    MtoC = []
    Pressure = []
    readfile = open(file,'r')
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()
    line = readfile.readline()

    datalines = readfile.read().split("\n")
    useful_data = []

    for line in datalines:
        line = ''.join([x for x in line if x not in [",", "\r"]])
        data = [float(item) for item in line.split()]
        useful_data.append(data)
    combined_data = [MtoC.extend(sub_list) for sub_list in useful_data]
    Mass_to_charge = MtoC[::2]
    Pressure = MtoC[1::2]

如果我在压力下的下一行是print Pressure,那么它将打印出数百个压力列表,每个列表包含大约1000个对象。我需要将每个列表的压力[4]附加到一个新文件中。我在想:

for p in Pressure:
    file.append(p[4])

但这不起作用。我也只是试着打印每个压力表的第五个对象,但我也不知道


Tags: 文件path对象in列表fordatareadline
1条回答
网友
1楼 · 发布于 2024-05-20 15:45:50

首先,变量名使用小写字母。现在,要从列表列表中获取每个列表的第5个元素,可以使用map对每个项目应用函数并返回结果列表:

list_of_fifths = map(lambda x: x[4], Pressure)

运行此命令的示例如下:

# create many lists...
>>> list_of_lists = [range(i) for i in range(5, 15, 2)]
>>> list_of_lists
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4, 5, 6], [0, 1, 2, 3, 4, 5, 6, 7, 8], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]
# take fifth element of each
>>> list_of_fifths = map(lambda x: x[4], list_of_lists)
>>> list_of_fifths
[4, 4, 4, 4, 4]

相关问题 更多 >