如何使用用户输入保存函数的输出

时间:2019-08-12 16:23:24

标签: python function

我有以下代码返回给定文本数组的平均标点符号。有没有一种方法可以用不同的输入保存该函数的输出?因此,对于“ train_input”作为myinput,它应该给我可调用变量train_input_punct,对于“ test_input”作为myinput,它应该创建可调用变量test_input_punct。有办法吗?

def interpunktion(myinput):
    punctuation_test = []
    characters_test = []

    count = lambda l1, l2: len(list(filter(lambda c: c in l2, l1)))


    for sentence in myinput:
        characters_test.append(count(sentence, string.ascii_letters))
        punctuation_test.append(count(sentence, string.punctuation))


    # durchschnittliche Punktuation pro Tweet

    mean_punct = [int(p) / int(c) for p,c in zip(punctuation_test, characters_test)]

    punct_test_array = np.hstack(mean_punct)

    punct_test_array = np.reshape(punct_test_array, myinput.shape)

    return punct_test_array

1 个答案:

答案 0 :(得分:1)

也许您可以使用某种数据结构,例如字典,以便您可以使用“ train_input”或“ test_input”作为键来标记值。

myinput = {
    "train_input": "some training input",
    "test_input": "some testing input"
}

result = interpunktion(myinput)

然后在您的函数中,您将只有某种条件语句来确定您使用哪种方法来处理数据。

def interpunktion(myinput):
    for input_type, input_value in myinput.items():
        if (input_type == "train_input"):
             # do some train input stuff
        elif (input_type == "test_input"):
             # do some test input stuff
     # ...

您不必完全使用字典,可以通过元组,列表或其他方式进行传递。但是我认为您需要在数据中传递某种标识符,以说明是测试还是训练输入。

希望有帮助! :)