亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中將csv文件解析為布爾表達式

在Python中將csv文件解析為布爾表達式

料青山看我應如是 2023-08-08 15:17:24
我有一個 csv 文件,例如:cutsetsx1x3,x5x2x4,x6x5,x7x6,x8x7,x9x6,x8,x10我運行以下 Py 腳本:import csv# Reads Boolean expression from cutsets fileexpr = []with open("MCS_overlap.csv", "r") as csv_file:    csv_reader = csv.reader(csv_file)    # skip the first row    next(csv_reader)    for lines in csv_reader:        expr = expr + lines + ['|']    del expr[-1]    final_expr=str(''.join(expr)).replace(",","&")print("The Boolean expression is")print(final_expr)并得到輸出:The Boolean expression isx1|x3x5|x2|x4x6|x5x7|x6x8|x7x9|x6x8x10我希望final_expr=str(''.join(expr)).replace(",","&")在“|”括起來的任何兩個變量之間得到一個“&”,例如“x4&x6”、“x6&x8&x10”。但可以看出,變量只是簡單地連接起來。鑒于我無法更改輸入文件的格式,如何完成插入“&”?
查看完整描述

2 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

干得好:


expr =[]

f = open('MCS_overlap.csv')

expr.append(f.read())

final_expr = expr[0].replace('\n', '|').replace(',', '&')

print(final_expr)

印刷:


'x1|x3&x5|x2|x4&x6|x5&x7|x6&x8|x7&x9|x6&x8&x10'


查看完整回答
反對 回復 2023-08-08
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

因為您使用的是csvmodule,lines是一個列表,因此expr是一個元素全部為 x-es 和一些 pipeline 的列表|。您可以打印出來親自查看。當您''.join(expr)這樣做時,只是連接所有元素,沒有逗號(即沒有要替換的內容)。


這應該做


import csv

# Reads Boolean expression from cutsets file


with open("MCS_overlap.csv", "r") as csv_file:

    csv_reader = csv.reader(csv_file)

    # skip the first row

    next(csv_reader)

    lines = ('&'.join(line) for line in csv_reader)

    final_expr = '|'.join(lines)

print(final_expr)

當然,你可以不使用csv模塊


with open("MCS_overlap.csv", "r") as csv_file:

    next(csv_file)

    lines = (line.strip().replace(',', "&") for line in csv_file)

    final_expr = '|'.join(lines)

print(final_expr)

請注意,這兩個片段均未經過測試,但我希望為您完成該任務。


查看完整回答
反對 回復 2023-08-08
  • 2 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號