1

私は以下のようなforループを持っています:

for i,x in enumerate(urunler):
    if x['fiyat'] == eklenecek['fiyat'] and x['urunobegi'] == eklenecek['urunobegi']:
        print x['id']

そしてそれは出力します:

1
2
3
9

このリストの最初のオブジェクトを選択するにはどうすればよいですか?

4

1 に答える 1

2

最も簡単なアプローチは次のとおりです。

first_value = None
for i,x in enumerate(urunler):
    if x['fiyat'] == eklenecek['fiyat'] and x['urunobegi'] == eklenecek['urunobegi']:
        first_value = x['id']
        break

リスト内のどの項目も条件を満たさない場合は、first_valueに設定されるように設定されていNoneます。

最後のものを選択したい場合:

last_value = None
for i,x in enumerate(urunler):
    if x['fiyat'] == eklenecek['fiyat'] and x['urunobegi'] == eklenecek['urunobegi']:
        last_value = x['id']

ただし、より良い解決策は、それをリストに変換して、任意のインデックスを自由に選択できるようにすることです。これは、リスト内包として行うのが最適です。

lst = [x['id'] for x in urunler if x['fiyat'] == eklenecek['fiyat']
                       and x['urunobegi'] == eklenecek['urunobegi']]

# First element: lst[0]
# Last element: lst[-1]
于 2012-08-10T10:02:39.417 に答える