>>> import re
>>> num_list = map(int, re.findall(r'\d+', open("circles.dat", "r").read()))
[200, 200, 100, 75, 200, 15, 325, 200, 15, 200, 75, 10, 200, 325, 10]
使用.read()
代替.readlines()
爲read()返回整個文件的內容作爲一個字符串(可以與正則表達式一起使用),而不像readlines()返回字符串列表。
獲取數字列表(以字符串形式)後,使用map()
函數將列表類型轉換爲int
類型。
步驟解釋:
>>> import re
>>> file_content = open("circles.dat", "r").read() # Read file as single string
>>> num_list = re.findall(r'\d+', file_content) # Fetch all numbers from string
>>> num_list
['200', '200', '100', '75', '200', '15', '325', '200', '15', '200', '75', '10', '200', '325', '10']
>>> map(int, num_list) # Typecast list of str to list of int
[200, 200, 100, 75, 200, 15, 325, 200, 15, 200, 75, 10, 200, 325, 10]
你應該讀行線和解析這些線路。 – RafaelC
你想要一個長整數列表,還是列表列表? – zondo
用於刪除\ t和\ n的東西,使用eval() – JustDucky