基於對這個問題顯示的文件,就可以讀取文件中的元素到像這樣的列表:
def read_file(filename):
data = []
with open(filename) as file:
for line in file.readlines():
temp = line.replace(";", " ").split()
for item in temp:
data.append(item)
return data
print(read_file("data.txt"))
# ['A7', 'C38', 'C25', 'C3', 'C20', 'C18', 'C27', 'A1', 'A2', 'D1', 'A21', 'A22', 'C29', 'C7', 'C14', 'A1', 'A5', 'C4', 'C15', 'C23', 'A1', 'A5', 'C26', 'C23', 'C7', 'A1', 'A2', 'C4', 'C51', 'C52', 'C23', 'A12', 'C1', 'C53', 'C35', 'C30', 'C31', 'C22', 'C54', 'C51', 'C1', 'C55', 'C53', 'C56', 'C52', 'C57', 'C58', 'C59', 'C26', 'C3', 'C36', 'C60', 'C13', 'C15', 'C14', 'A12', 'A4', 'A9', 'A1', 'A2', 'A5', 'C47', 'A23', 'A1', 'A2', 'B1', 'A21', 'F1', 'A4', 'C29', 'C61', 'C26', 'C1', 'C56', 'C27', 'C37', 'C20', 'C23', 'C62', 'C5', 'C15', 'C63', 'C50', 'A24', 'A49', 'A46', 'A25', 'A26', 'A17', 'A12', 'A30', 'A51', 'A31', 'A53', 'A29', 'A54', 'A28', 'A27', 'A32', 'A1', 'C4', 'C26', 'C1', 'C3', 'A2', 'C23', 'A6', 'A1', 'A4', 'C13', 'C22', 'C65', 'C21', 'C64', 'A33', 'C19', 'C23', 'A7', 'C20', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'B1', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15', 'C16', 'C17', 'C18', 'C19', 'C20', 'C21', 'C22', 'A1', 'A2', 'C23']
然後,你可以簡單地使用collections.defaultdict
收集在一個字典中的字符頻率:
import collections
def get_counts(data):
freq = collections.defaultdict(int)
for char in data:
freq[char] += 1
return freq
print(get_counts(read_file("data.txt")))
# defaultdict(<class 'int'>, {'A54': 1, 'C3': 4, 'C1': 5, 'C50': 1, 'A53': 1, 'C60': 1, 'C17': 1, 'C65': 1, 'C10': 1, 'C9': 1, 'A5': 4, 'C59': 1, 'A25': 1, 'C37': 1, 'A49': 1, 'C55': 1, 'C4': 4, 'C36': 1, 'C58': 1, 'A23': 1, 'C14': 3, 'A29': 1, 'A6': 2, 'A2': 7, 'C15': 4, 'C6': 1, 'C2': 1, 'B1': 2, 'C30': 1, 'C29': 2, 'A4': 4, 'C52': 2, 'C12': 1, 'A32': 1, 'C16': 1, 'C27': 2, 'C57': 1, 'A24': 1, 'C63': 1, 'D1': 1, 'C5': 2, 'C23': 7, 'A28': 1, 'C54': 1, 'A30': 1, 'C7': 3, 'A12': 3, 'A21': 2, 'C25': 1, 'C19': 2, 'C61': 1, 'C56': 2, 'A9': 1, 'C47': 1, 'C38': 1, 'C13': 3, 'A31': 1, 'C35': 1, 'A17': 1, 'A46': 1, 'A51': 1, 'A3': 1, 'C11': 1, 'C62': 1, 'C22': 3, 'A33': 1, 'A7': 3, 'C51': 2, 'C64': 1, 'C26': 4, 'F1': 1, 'A1': 10, 'C8': 1, 'C20': 4, 'C18': 2, 'A22': 1, 'A26': 1, 'A27': 1, 'C53': 2, 'C21': 2, 'C31': 1})
或者collections.Counter
:
import collections
def get_counts(data):
return collections.Counter(data)
print(get_counts(read_file("data.txt")))
# Counter({'A1': 10, 'A2': 7, 'C23': 7, 'C1': 5, 'C3': 4, 'A5': 4, 'A4': 4, 'C4': 4, 'C15': 4, 'C26': 4, 'C20': 4, 'C22': 3, 'A12': 3, 'A7': 3, 'C7': 3, 'C14': 3, 'C13': 3, 'C56': 2, 'A21': 2, 'B1': 2, 'C27': 2, 'A6': 2, 'C18': 2, 'C5': 2, 'C51': 2, 'C53': 2, 'C19': 2, 'C29': 2, 'C52': 2, 'C21': 2, 'A46': 1, 'A24': 1, 'A31': 1, 'C65': 1, 'C12': 1, 'A23': 1, 'C11': 1, 'F1': 1, 'C16': 1, 'C10': 1, 'C36': 1, 'C61': 1, 'A27': 1, 'C8': 1, 'C37': 1, 'C59': 1, 'A28': 1, 'C50': 1, 'A49': 1, 'C38': 1, 'A25': 1, 'C35': 1, 'A32': 1, 'C25': 1, 'A9': 1, 'A17': 1, 'A54': 1, 'C58': 1, 'C2': 1, 'A26': 1, 'D1': 1, 'C6': 1, 'C63': 1, 'C47': 1, 'C62': 1, 'C31': 1, 'C30': 1, 'C55': 1, 'A29': 1, 'A51': 1, 'A53': 1, 'C9': 1, 'A3': 1, 'C17': 1, 'C60': 1, 'C57': 1, 'A30': 1, 'C64': 1, 'A22': 1, 'A33': 1, 'C54': 1})
是在谷歌文檔這個CSV或只? – jhpratt
請將示例數據*作爲文本*屏幕截圖沒有幫助。看起來你需要幫助解析一些文本。幫助我們幫助你。 –
這裏是我的txt文件的鏈接:https://file.io/Bxlrgt – agccaesar