

Python3.6を用いて、与えられた配列の中身によって出力を変えるような関数を作りたいと考えています。

[code]

    input_data = [1,2,3]
    def equ(x):
    if xの各要素のそれぞれの値 > 2:
        return x+3
    else:
        return x+1
    
[/code]

equ(input_data)の期待される出力：[2,3,6]

このような関数を作成するためにはどのようにすればできるでしょうか？  
もし、できないならばどのようにしたら効率よくコーディングできるでしょうか？

以上、よろしくお願い致します


CC BY-SA 4.0
2019-04-09T07:23:17.360
54042
2019-04-09T07:38:39.687
2019-04-09T07:33:11.793
32851
32851
question
python python3
pythonの関数に配列を引数にしたときに、配列の中身で条件分岐を行う書き方について


# 配列を受け取る構成の場合

配列の各要素をforで回すと良さそうです。

[code]

    input_data = [1, 2, 3]
    
    
    def equ(x):
        result = []
        for e in x:
            if e > 2:
                result.append(e + 3)
            else:
                result.append(e + 1)
        return result
    print(equ(input_data))
    
[/code]

# 配列の各要素を受け取る構成の場合

配列そのものではなく、配列の各要素を受け取る関数にすると、よりすっきりと記述することができます。

[code]

    input_data = [1, 2, 3]
    
    print(list(map(
        lambda x: x + 3 if x > 2 else x + 1,
        input_data,
    )))
    
[/code]


CC BY-SA 4.0
2019-04-09T07:38:39.687
54043
2019-04-09T07:38:39.687
29826
54042
answer