Python 尝试从从从两个函数打印的函数返回一个数据集

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

在这个程序中,我试图让dataPrinter()函数只返回一组数据。现在这个程序运行良好,但我希望它只返回一个数据集,其中包含来自gen1和gen2的数据。如下图所示,我已经尝试创建返回每个数据集的处理函数,然后将它们组合到生成器中。但那没用

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()的输出