选择def返回的列表

时间:2013-03-12 13:55:06

标签: python user-defined-functions

我有一个定义来分隔特定属性的某些坐标。 对于这种分离,我使用1个定义,在定义中我有9个列表(不同的标准)。现在输出我只想要我定义的列表。否则我不能用它来绘图。

def sorteerCord(cord):
    tweestijging=[]
    stijginggelijk=[]
    stijgingdaling=[]
    tweedaling=[]
    dalinggelijk=[]
    dalingstijging=[]
    tweegelijk=[]
    gelijkstijging=[]
    gelijkdaling=[]

    y=0
    while y<len(cord):
        lijst=cord[y]
        if (lijst[1]-lijst[0])>0.5:
            if (lijst[2]-lijst[1])>0.5:
                tweestijging.append(y)
            if (lijst[2]-lijst[1])<=0.5 and (lijst[2]-lijst[1])>=-0.5:
                stijginggelijk.append(y)
            if (lijst[2]-lijst[1])<-0.5:
                stijgingdaling.append(y)

        if (lijst[1]-lijst[0])<-0.5:
            if (lijst[2]-lijst[1])>0.5:
                dalingstijging.append(y)
            if (lijst[2]-lijst[1])<=0.5 and (lijst[2]-lijst[1])>=-0.5:
                dalinggelijk.append(y)
            if (lijst[2]-lijst[1])<-0.5:
                tweedaling.append(y)

        if (lijst[1]-lijst[0])<=0.5 and (lijst[1]-lijst[0])>=-0.5:
            if (lijst[2]-lijst[1])>0.5:
                gelijkstijging.append(y)
            if (lijst[2]-lijst[1])<=0.5 and (lijst[2]-lijst[1])>=-0.5:
                tweegelijk.append(y)
            if (lijst[2]-lijst[1])<-0.5:
                gelijkdaling.append(y)

        y=y+1       
    print raw_input()
    return raw_input()

他们是一种在我的def中定义输出文件是什么样的方法(def sorteerdCord(cord,outpu = tweestijging)

1 个答案:

答案 0 :(得分:3)

我猜你在最后两行中希望用户输入要使用的输出列表但不太确定。您可以使用字典将输入字符串映射到变量。

类似的东西:

def sorteerCord(cord, output):
    # all of your separation code
    outputmap = { 'tweestijging': tweestijging,
                  'gelijkstijging' : gelijkstijging,
                   # and more of those
                 }
    return outputmap[ output ]

然后致电:

sorteerCord(cord, 'gelijkstijging')

您当然也可以选择返回所有列表或将其保存在字典中:

output = { 'tweestijging': [],
       'gelijkstijging': [],
        # etc
        }

 # code to manipulate lists goes here

return output

然后使用相同的技术选择一个。