[英]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.