属性 ID を持つオブジェクトのリストがあり、特定の ID を持つオブジェクトのインデックスを見つけたいです。私はこのようなものを書きました:
index = -1
for i in range(len(my_list)):
if my_list[i].id == 'specific_id'
index = i
break
しかし、あまりよく見えません。より良いオプションはありますか?
ループenumerate
内で値とインデックスの両方が必要な場合に使用します。for
for index, item in enumerate(my_list):
if item.id == 'specific_id':
break
else:
index = -1
または、ジェネレータ式として:
index = next((i for i, item in enumerate(my_list) if item.id == 'specific_id'), -1)
使用できますenumerate
:
for index, item in enumerate(my_list):
if item.id == 'specific_id':
break