與Python一個文件可以使用str.split()不帶參數像這樣進行讀取和分裂上的空白到一個列表:
lines = []
for line in open('filename'):
line = line.strip().split() # splits on whitespace
for token in line:
lines.append(token)
如果文件具有不同的分離器,例如結腸它能如果分隔符是split(':')或split('charseq')中使用split('char')的字符或固定字符序列,則可以像split('===')那樣進行拆分,或者可以使用re.split('some_regex','text2split')在正則表達式上拆分。此外,驗證數字數據的格式以確保無效數據在後續處理中不會導致錯誤或其他不良行爲可能很有用。
下面是一個完整的例子,用於從文件中提取以逗號分隔的數字並將它們附加到列表中,並且數字被過濾以匹配由正則表達式定義的三種格式中的至少一種:(1)'\ d +' (超過一位十進制數字); (2)'\ d +。\ d *'(多於一個十進制數字,後跟一個句點,後面跟零個或多個十進制數字;或者(3)'\ d *。\ d +'(零個或多個十進制數字後跟一個。週期後面跟着一個或多個十進制數字)在這個例子中,在這些形式的匹配數的正則表達式被編譯,以提高性能
import re
numList = []
regex = re.compile('^(\d+)|(\d+\.\d*)|(\d*\.\d+)$')
for data in open('filename'):
tmpList = re.split(',',data.strip()) # could use data.strip().split(',')
for element in tmpList:
if regex.match(element):
numList.append(element)
在numList運行該數字後可以重複這樣的:
for item in numList:
print(item)
# do other things such as calculations with item
輸入列表究竟如何影響隨機數的產生?你只是在尋找'random.shuffle'還是'random.sample'? – Blckknght
你試過正則表達式嗎?正則表達式可以真正幫你解決p atterns –
你需要更清楚地描述你的問題。列表如何影響列表中的數字?你想讓你的代碼識別模式嗎? – Madeline