@ ফাহামের দেওয়া উত্তরটি একটি দুর্দান্ত এক-লাইনার, তবে এটি মূল্য সহ অভিধানটিতে সূচকটি ফিরিয়ে দেয় না। পরিবর্তে এটি অভিধান নিজেই ফেরত দেয়। এখানে যাওয়ার একটি সহজ উপায়: একের বেশি হলে সূচকের একটি বা একাধিক, বা যদি না থাকে তবে খালি তালিকা:
list = [{'id':'1234','name':'Jason'},
{'id':'2345','name':'Tom'},
{'id':'3456','name':'Art'}]
[i for i, d in enumerate(list) if 'Tom' in d.values()]
আউটপুট:
>>> [1]
আমি এই পদ্ধতির সম্পর্কে যা পছন্দ করি তা হ'ল একটি সাধারণ সম্পাদনা দ্বারা আপনি উভয় সূচী এবং অভিধান উভয়ের তালিকা হিসাবে টিপলস পেতে পারেন। এই উত্তরগুলি সমাধান করার জন্য আমার যে সমস্যাটি প্রয়োজন তা হ'ল। নিম্নলিখিতটিতে, আমি এটি কীভাবে কাজ করে তা দেখানোর জন্য একটি আলাদা অভিধানে একটি সদৃশ মান যুক্ত করেছি:
list = [{'id':'1234','name':'Jason'},
{'id':'2345','name':'Tom'},
{'id':'3456','name':'Art'},
{'id':'4567','name':'Tom'}]
[(i, d) for i, d in enumerate(list) if 'Tom' in d.values()]
আউটপুট:
>>> [(1, {'id': '2345', 'name': 'Tom'}), (3, {'id': '4567', 'name': 'Tom'})]
এই সমাধানটিতে তাদের কোনও মানগুলিতে 'টম' যুক্ত সমস্ত অভিধান খুঁজে পাওয়া যায়।