私はPythonの完全な初心者であり、リスト/配列をパラメータとして宣言するPython関数に引数として配列を渡そうとしています。
私はそれが間違っていると宣言していると確信しています、
ここに行きます:
def dosomething(listparam):
#do something here
dosomething(listargument)
明らかにこれは機能していません。何が間違っていますか?
ありがとう
私はPythonの完全な初心者であり、リスト/配列をパラメータとして宣言するPython関数に引数として配列を渡そうとしています。
私はそれが間違っていると宣言していると確信しています、
ここに行きます:
def dosomething(listparam):
#do something here
dosomething(listargument)
明らかにこれは機能していません。何が間違っていますか?
ありがとう
あなたが持っているものは正しい軌道に乗っています。
def dosomething( thelist ):
for element in thelist:
print element
dosomething( ['1','2','3'] )
alist = ['red','green','blue']
dosomething( alist )
出力を生成します。
1
2
3
red
green
blue
上記のコメントを踏まえて注意すべき点がいくつかあります。C ファミリ言語とは異なり、インデックス自体が重要でない限り、リストを反復処理するときにインデックスを追跡する必要がないことがよくあります。ただし、インデックスが本当に必要な場合は、ダンスを行うのではなく、ペアenumerate(list)
を取得するために使用できます。index,element
x in range(len(thelist))
配列の要素をアンパックしたいかもしれませんが、それを取得したかどうかはわかりませんが、以下に例を示します。
def my_func(*args):
for a in args:
print(a)
my_func(*[1,2,3,4])
my_list = ['a','b','c']
my_func(*my_list)
OPが実際に何を求めていたのかはっきりしていないと思います...配列/リスト全体を渡して、関数内で操作しますか? または、配列/リスト内のすべての値/アイテムで同じことをしたいですか? 後者を希望する場合は、うまく機能する方法を見つけました。
Fortran や C などのプログラミング言語の方が、配列内の各要素を操作する要素関数を定義できるプログラミング言語に精通しています。私は最終的にこれに相当するpythonを追跡し、解決策をここに再投稿すると考えました。重要なのは、関数を「ベクトル化」することです。次に例を示します。
def myfunc(a,b):
if (a>b): return a
else: return b
vecfunc = np.vectorize(myfunc)
result=vecfunc([[1,2,3],[5,6,9]],[7,4,5])
print(result)
出力:
[[7 4 5]
[7 6 9]]