2017-08-04 16 views
0

私は辞書を含むリストを持っています。 mylistというのサンプル:辞書のリストを関数パラメータとして渡すにはどうすればよいですか?

products = [{u'title': u'product_A', u'int': [{u'content': 8112, u'name': u'orbitnumber'}, {u'content': 107, u'name': u'relativeorbitnumber'}], u'double': {u'content': 23.4161, u'name': u'cloudcoverpercentage'}]

私は「forループ」を使用し、特定のアイテムを検索する場合。 例:

for i in range(len(products)): 
     unzip(products[i]["title"]) 

このコードは正常に動作します。 これで、そのリストを新しい関数にパラメータとして渡したいと思います。

「製品」リストを引数として使用できる関数を定義するにはどうすればよいですか?私は、Pythonでは、* argsを使ってパラメータとしてリストを渡すことができることを知っています。しかし、どのように関数の一般的な方法で[list_index] ["key"]という例の製品を定義することができますか?

+1

サンプルデータと期待される出力を共有できますか? –

+2

任意のオブジェクトをパラメータとしてPython関数に渡すことができます。あなたのコードがリストを返す場合、あなたは単にそれをdef myfunc_that_parses_list(some_object_that_just_happens_to_be_a_list)として渡すことができます。* argsと** args表記法は、関数への入力の数がわからないときに使用されます。実際にあなたのケースではない、あなたはあなたの関数が入力としてリストを必要とするだけであることを知っている。 args表記の使用に関する詳細:https://pythontips.com/2013/08/04/args-and-kwargs-in-python-explained/ – BoboDarph

答えて

1

例あなたの機能はあなたが以下のように定義することができ my_fです:

def my_f(my_var): 
    # then you can do anything you want 
    my_var[list_index]["key"] = "0123" 
    # Do some other works 
    # ... 
    # You can return my_var if you need the above change 
    return my_var 

あなたがmy_f関数を呼び出すとmy_f関数のパラメータ

new_list = my_f(products) 

として「製品」を渡し、他の場所でパラメータを渡すのは1つのケースです。 Pythonでは何もパラメータとして渡すことができます。

+1

2つのパラメータを入力として使用して関数を定義し値を渡して呼び出すときに1つのパラメータだけを渡すと、「Missing required position argument」のTypeErrorが発生します。 – BoboDarph

+0

はい、そうです。 Editted。 @Boboありがとうございました – Toandd

+0

あなたの答えをありがとうございます@ Toandd!それは役に立ちました。 – Gpetr

関連する問題