這個問題在這里已經有了答案: 在 Python 中的空格上拆分字串 [重復] (4 個答案) 13 分鐘前關閉。
給定一個 ascii 檔案,我想要一個 python one-liner 來創建檔案中的單詞串列。
讓 tfile 包含以下 2 行
abc xyz abc mno
tuv xyz qrs abc
檔案中有 8 個單詞和 5 個唯一單詞。
如果我分配
file='tfile'
以下單行代碼將創建一個包含 tfile 中 5 個唯一單詞的集合
s=set(open(file).read().split())
其中輸出是 {'abc', 'mno', 'qrs', 'tuv', 'xyz'}
但是,如果我嘗試類似的方法來獲取檔案中所有單詞的串列,即
l=list(open(file).read().split(" "))
我得到以下
['abc', 'xyz', 'abc', 'mno\ntuv', 'xyz', 'qrs', 'abc\n']
這不太有效,因為每行的最后一個單詞都附加了一個換行符。
如果我將 strip() 添加到陳述句中
l=list(open(file).read().strip().split(" "))
我得到以下內容,這更好,但仍包含一個換行符,該換行符附加到檔案下一行的第一個單詞。
['abc', 'xyz', 'abc', 'mno', '\ntuv', 'xyz', 'qrs', 'abc']
所以有兩個問題:(1)是否有一種單線可以滿足我的需求?和 (2) 為什么這組獨特的詞可以很好地作業,而沒有得到任何換行符?
uj5u.com熱心網友回復:
您已將 a" "作為引數添加到第二個示例中的拆分中。起初,你有
s=set(open(file).read().split())
但是,你這樣做
l=list(open(file).read().split(" "))
關鍵是split(" ")。沒有它,Python 只會在任何被認為是空格的地方進行拆分,但有了它,它就被限制在空格內。
所以你只需要
l=list(open(file).read().split())
uj5u.com熱心網友回復:
如果你想要一個唯一詞的串列,你可以先創建一個集合,然后轉換成一個串列。
l=list(set(open(file).read().split()))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361610.html
