對不起,我提交了一個小問題,但是這讓我很煩。我有這樣的一行,這是永久給我的語法錯誤:一行if else語句拒絕工作
print(BDF) if header is 1
我也試過這樣:
print(BDF) if (header == 1)
下面是完整的功能:
def CSVtoDict(BDF, prune, header):
# Comes with the option to prune [] and to use headers
with open('%s%s.csv' % (dataDir,BDF), mode='r') as infile:
reader = csv.reader(infile)
saved = {}
for row in reader:
key = row[0]
saved[key] = [r for r in row[1:] if not (r is '' and prune is 1)]
print(BDF) if header is 1
return saved
怎麼可能是造成這個?我打電話的功能與:
adsMut = CSVtoDict(BaseDataFiles[0],1,1)
一切似乎是爲了,每次它只是給我語法錯誤。
你爲什麼想成爲看上了'print'聲明?只要做最簡單直接的解決方案(約翰戈登的答案)。你花了多少時間來調試?任何閱讀單行解決方案的人都不得不懷疑你爲什麼這樣做。 – Akavall
這是一條非常簡單的線條,使得兩行代碼不會使代碼更清晰(我認爲),並且會使代碼變得更長(線條上)。另外我想完善的基礎知識,因爲我進入更復雜的東西:) –
我堅信使用三元條件運算符是不標準的;語法有點混亂,對吧?否則,你不會問這個問題。如果你使用'print(BDF)',如果header是1 else',如果條件不滿足,'None'將被打印出來,你想要嗎? – Akavall