簡體   English   中英

Python:運行具有多個輸入的for循環並將結果排序到不同的列表中

[英]Python: Running a for loop with multiple inputs and sorting the results into different lists

所以我有一些看起來像這樣的代碼:

measure_list=[]
for file in file_list:
    with open(file,"r") as read_data:
        y=read_data.read()
        if "Part: ABCD" in y:
            for line in m:
                if "Measure X:" in line:
                    measure_list.append(line)
                elif "Measure Y:" in line:
                    measure_list.append(line)

final=''.join(measure_list).replace("Measure","\nMeasure")
print(final)

(這最后一部分只是幫助組織輸出)

因此,這部分代碼將打開一組文件,並掃描每個文件以查看其是否為“ Part:ABCD”,如果是,它將拉出“ Measure X:”和“ Measure Y:”行並添加他們到measure_list。 我的問題是我有很多文件,並且會有多個“ Part:ABCD”文件。 在使用.join()加入列表之后,輸出將如下所示:

Part: ABCD
Measure X: (Numbers)
Measure Y: (Numbers)
Measure X: (Numbers)
Measure Y: (Numbers)
Measure X: (Numbers)
Measure Y: (Numbers)

我的問題是,是否有人知道組織輸出的方式,使其看起來像這樣:

Part: ABCD
Measure X: (Numbers)
Measure X: (Numbers)
Measure X: (Numbers)
Measure Y: (Numbers)
Measure Y: (Numbers)
Measure Y: (Numbers)

任何幫助表示贊賞。

為什么不只使用兩個列表?

if "Measure X:" in line:
    listx.append(line)
elif "Measure Y:" in line:
    listy.append(line)

然后簡單地

final = ''.join(listx + listy)

創建兩個輸出數組,並使用帶有if語句的for循環將輸入分類。 然后將兩個輸出合並。

我前面沒有python,因此可能需要進行輕微的語法編輯。 這應該按“ Measure X:...”的X和Y部分對列表進行排序。

sorted(measure_list,key=lambda item: item.split()[1][0])

您的measure_list看起來像這樣:

['Measure X: 1000', 'Measure Y: 2000', 'Measure X: 100' , 'Measure Y: 900']

如果是的話,您可以簡單地對以下measure_list排序:

measure_list.sort()

然后您將擁有:

['Measure X: 100', 'Measure X: 1000', 'Measure Y: 2000', 'Measure Y: 900']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM