我有這個代碼:
type(i[0]) == 'str'. 我怎樣才能得到它作為一個串列?后來得到print(i[0][0]) == 'a'
import csv
i = [['a', 'b'], 'c', 'd']
with open('a.csv', 'a', newline='', encoding='utf-8') as file:
writer = csv.writer(file, delimiter=';')
writer.writerow(i)
file.close()
with open('a.csv', 'r', newline='', encoding='utf-8') as file:
for i in csv.reader(file, delimiter=';'):
print(type(i[0]))
uj5u.com熱心網友回復:
它回傳的原因,str而不是list因為 csv 撰寫器將始終執行等價于str(['a','b']),即 "['a', 'b']",c,d,因此您可以使用從字串串列ast.literal_eval中獲取串列的第一個元素 -
import csv
import ast
i = [['a', 'b'], 'c', 'd']
with open('a.csv', 'a', newline='', encoding='utf-8') as file:
writer = csv.writer(file, delimiter=';')
writer.writerow(i)
file.close()
with open('a.csv', 'r', newline='', encoding='utf-8') as file:
for i in csv.reader(file, delimiter=';'):
i[0] = ast.literal_eval(i[0])
print(type(i),type(i[0]), i[0][0])
uj5u.com熱心網友回復:
您可以使用 for 回圈。像這樣:
示例 a.csv
hello, aloha, hola
bye, aloha, adios
蟒蛇代碼:
import csv
col1 = []
with open('a.csv') as file:
r = csv.reader(file)
for row in r:
col1.append(row[0])
print(col1) # => ['hello', 'bye']
或者,您也可以使用串列推導:
import csv
col1 = []
with open('a.csv') as file:
r = csv.reader(file)
col1 = [row[0] for row in r]
print(col1) # => ['hello', 'bye']
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/529507.html
標籤:Python列表CSV
上一篇:熊貓問題和寫入csv檔案
下一篇:如何將我的一個長列名分成列
