簡體   English   中英

如何獲取 str/.txt 輸入並將其放入 pyton 列表中

[英]How can I take a str/.txt input and make it into a list for pyton

我有一個文本文件,其中的信息格式為

標題、作者、用戶評分、評論、價格、出版年份、流派(小說或非小說)

樣本數據表格txt

test_data = """ 
    Girls,Hopscotch Girls,4.8,9737,7,2019,Non Fiction
    I - Alex Cross,James Patterson,4.6,1320,7,2009,Fiction
    If Animals Kissed Good Night,Ann Whitford Paul,4.8,16643,4,2019,Fiction
 """

它們都用逗號 (,) 分隔。 我想把這個輸入變成一個看起來像的列表

list = {'Name': 'Girls','Author': 'Hopscotch Girls','User Rating':'4.8', 'Reviews':'9737', 'Price':'7', 'Publication Year':'2019', 'Genre':'Non Fiction'}

我試圖讓它成為一個列表,以便更容易瀏覽,因為稍后在我的程序中,因為我希望能夠獲得像年份這樣的用戶輸入並列出該年內的所有書籍。 它還將使格式化輸出更容易。

如果您從 .txt 文件中讀取數據

data = {'Name': [], 'Author': [], 'User Rating': [], 'Reviews': [], 'Price': [], 'Publication Year': [], 'Genre': []}

with open("filename/goes/here.txt", "r") as f:
    for line in f.readlines():
        lineData = line.split(r",")

        for key, ld in zip(data.keys(), lineData):
            data[key].append(ld)

根據您的描述,我相信這是一個解決方案。 一些建議,永遠不要使用與任何內置函數相同的名稱來命名變量。 (例如列表、整數、字符串)

鑒於您的要求

我試圖讓它成為一個列表,以便更容易瀏覽,因為稍后在我的程序中,因為我希望能夠獲得像年份這樣的用戶輸入並列出該年內的所有書籍。 它還將使格式化輸出更容易。

我認為字典列表可以完成這項工作。 使用列表理解(我使用的您在問題中定義的test_data ):

tags = ["Name", "Author", "User Rating", "Reviews", "Price", "Publication Year", "Genre"]
result = [dict(zip(tags, x.split(","))) for x in test_data.split("\n") if len(x.strip()) > 0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM