[英]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.