Python 尝试从从从两个函数打印的函数返回一个数据集
在这个程序中,我试图让dataPrinter()函数只返回一组数据。现在这个程序运行良好,但我希望它只返回一个数据集,其中包含来自gen1和gen2的数据。如下图所示,我已经尝试创建返回每个数据集的处理函数,然后将它们组合到生成器中。但那没用Python 尝试从从从两个函数打印的函数返回一个数据集,python,list,csv,input,Python,List,Csv,Input,在这个程序中,我试图让dataPrinter()函数只返回一组数据。现在这个程序运行良好,但我希望它只返回一个数据集,其中包含来自gen1和gen2的数据。如下图所示,我已经尝试创建返回每个数据集的处理函数,然后将它们组合到生成器中。但那没用 import os os.chdir('C:\Users\U2970\Desktop') fileData = open('SOUTH_06_01_2015_SECFILE.CSV','rb') ##fullSet = open('2015_FILES_C
import os
os.chdir('C:\Users\U2970\Desktop')
fileData = open('SOUTH_06_01_2015_SECFILE.CSV','rb')
##fullSet = open('2015_FILES_COMBINED.CSV','rb')
columns_no = 3
def headerBody(columns_no):
columns = [] ## returns the created header of a csv file
for i in range(columns_no):
text = raw_input("Enter column #%d name: " % i)
columns.append(text)
return columns
def dataBody(columns_no):
segmentLines = [] ## returns the body of the csv file
for line in fileData.readlines():
segmentLine = line.split(',')
segmentLines.append(segmentLine[:columns_no])
return segmentLines
def dataPrinter(): ## How can I make this function return one set
## of data that combines both the data from
## gen1 and gen2?
gen1 = headerBody(columns_no)
gen2 = dataBody(columns_no)
print','.join(gen1)
for row in gen2:
print','.join(row)
dataPrinter()
## Data handlers I made that give me very limited success ##
def headerHandler():
gen1 = headerBody(columns_no)
return','.join(gen1)
def bodyHandler():
gen2 = dataBody(columns_no)
for row in gen2:
return','.join(row)
def combinedPrinter():
newList = []
gen1 = headerHandler()
gen2 = bodyHandler()
for line in gen1:
newList.append(line)
for line in gen2:
newList.append(line)
return newList
Python最好的一点是,动态创建新对象非常容易。可以使方法返回两个值的元组
def dataPrinter():
gen1 = headerBody(columns_no)
gen2 = dataBody(columns_no)
return gen1, gen2
从调用端,您可以将它们作为单个元组对象获取,也可以将它们解包为两个变量
response = dataPrinter()
print response[0] # prints header
print response[1] # prints body
或者
header, body = dataPrinter()
print header
print body
print header + '\n' + body
额外琐事:-
如何在python中交换两个变量的值?
a,b=b,a
。就这样 函数dataPrinter()似乎没有返回任何内容。它同时打印第1代和第2代,因为您显式编程了它。在这里找不到任何琐碎的东西,或者我想你需要解释更多。是的,我知道。但我想知道如何使另一个函数返回合并在一个中的两个数据集。发布回应作为答案。好的,很好。您可以从代码下半部分的处理程序中看到,我正在尝试合并headerBody()和dataBody()的输出