1

Python を学習したばかりで、リスト内のアイテムの検索に関するアドバイスが必要です。リストのリストを含むリストがあります。以下の例のように、リスト内の項目を検索して同じリストから値を返すにはどうすればよいですか。

Example: 
myList = [['Red', 'Tomato'], ['Green', 'Pear'], ['Red', 'Strawberry'], ['Yellow', 'Lemon']]

word = 'Green'
return Pear

リストの最初のインスタンスまたは n 番目のインスタンスも見つけることができますか?

first_instance = 'Red'
return Tomato

last_instance = 'Red'
return Strawberry
4

5 に答える 5

0

わかった。他のすべての回答は、おそらくこれよりもPythonicです。単純なループがあると役立つと思うので、追加しています。

def find_first(key, list_of_pairs):
    for pair in list_of_pairs:
        if pair[0] == key:
            return pair[1]
    return None # hey, maybe it isn't in the list at all!

ああ、次のように定義できますfind_last

find_last = lambda k, lop: find_first(key, reversed(lop))

そう。Pythonでは、いつでもこのルートに進むことができます。ただし、他の回答で言及されているリスト内包表記を実際に調べる必要があります。

于 2013-05-06T09:03:37.977 に答える
0

リストから辞書を作成するには、辞書内包表記、つまりワンライナーを使用します。次に、dict をクエリします。

>>> d={x[0]:x[1] for x in myList}

d に等しい{'Green': 'Pear', 'Yellow': 'Lemon', 'Red': 'Strawberry'}

>>> d['Green']
'Pear'
于 2013-05-07T04:31:17.210 に答える