簡體   English   中英

為什么此代碼會產生列表列表?

[英]Why Does This Code Produce a List of Lists?

我有一個功能:

def csvToList( filename ):
    with open(filename, 'r') as fp:
        reader = csv.reader(fp)
        myList = list(reader)
    return myList

並調用:

fruitList = csvToList('fruit.csv')

fruit.csv的內容是:

apple,orange,kiwi,tomato

fruitList的值是一個列表列表:

[['apple', 'orange', 'kiwi', 'tomato']]

為什么這段代碼會產生一個列表列表,而不僅僅是一個簡單的“平面”列表,如下所示:

['apple', 'orange', 'kiwi', 'tomato']

閱讀器從CSV文件生成 請參閱文檔

從csv文件讀取的每一行都作為字符串列表返回。

您的文件只包含1行,這並不重要; list(reader)生成所有行的列表,可以是0、1或2000萬。 因此,只有1行的文件會為您提供一個包含該單行作為列表的列表。

如果您只希望獲得一行,請使用next()函數迭代一個步驟:

def csvToList( filename ):
    with open(filename, 'r') as fp:
        reader = csv.reader(fp)
        return next(reader, [])

next(reader, [])告訴函數,如果reader根本不產生任何東西,則返回一個空列表。

暫無
暫無

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

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