Python 为什么write命令不能处理生成的字符串和预生成的字符串?
我遇到的问题是,当我使用.write()函数编写预先生成的字符串列表时,它可以正常工作,但当我尝试将数字列表生成为字符串并使用.write()时,它会说我不能使用列表,它必须是字符串Python 为什么write命令不能处理生成的字符串和预生成的字符串?,python,python-3.x,list,csv,Python,Python 3.x,List,Csv,我遇到的问题是,当我使用.write()函数编写预先生成的字符串列表时,它可以正常工作,但当我尝试将数字列表生成为字符串并使用.write()时,它会说我不能使用列表,它必须是字符串 import csv def makeFile(): fileName = "m11prog2.csv" outputData = ['#ENG101-04 Module 11, Program 2\n', 'Noah Sickels\n', '\n', 'x,x^2\n']
import csv
def makeFile():
fileName = "m11prog2.csv"
outputData = ['#ENG101-04 Module 11, Program 2\n', 'Noah Sickels\n', '\n', 'x,x^2\n']
newData = []
with open(fileName, 'w') as f:
for i in range(1, 1001):
#dataStr = f'{i}, {i**2}\n'
dataStr = ''+str(i)+','+str(i**2)+'\n'
newData.append(dataStr)
outputData.append(newData)
for data in outputData:
f.write(data)
我不明白的是,为什么.write()允许我将第一个列表“outputData”写入文件,而不是将新数据写入文件,因为它们是相同类型的列表。因为您有这一行
import csv
def makeFile():
fileName = "m11prog2.csv"
outputData = ['#ENG101-04 Module 11, Program 2\n', 'Noah Sickels\n', '\n', 'x,x^2\n']
newData = []
with open(fileName, 'w') as f:
for i in range(1, 1001):
#dataStr = f'{i}, {i**2}\n'
dataStr = ''+str(i)+','+str(i**2)+'\n'
"""the line below appends the second list to the first and causes the error"""
newData.append(dataStr)
outputData.append(newData)
for data in outputData:
f.write(data)
在这一行中,您将第二个列表(newData)附加到第一个列表(outputData),当循环到达outputData中的最后一项时,它会给出一个错误。outputData中的前4项作为
data
都是字符串,可以写入文件。outputData中最后一项为data
,是字符串列表,不适合写入文件。