উত্তর:
চেষ্টা করুন:
>>> t = ((1, 'a'),(2, 'b'))
>>> dict((y, x) for x, y in t)
{'a': 1, 'b': 2}
dict((x, y) for x, y, z in t)
বা dict((x, (y, z)) for x, y, z in t)
দ্বিতীয় হিসাবে তৃতীয় এবং তৃতীয় মান পেতে।
একটি সামান্য সহজ পদ্ধতি:
>>> t = ((1, 'a'),(2, 'b'))
>>> dict(map(reversed, t))
{'a': 1, 'b': 2}
reverse
স্পষ্টভাবে বানান থাকার জন্য এটি পছন্দ ।
map
জিনিসটি ম্যাপ করা হচ্ছে তখন অন্য কোনও অন্তর্নির্মিত ফাংশন (যেমন reversed
) হ'ল ( কমপক্ষে সি বাস্তবায়নে) একটি বোধগমনের চেয়ে দ্রুত হয় ; অন্যান্য ক্ষেত্রে, বিপরীতটি সত্য। তবে অনুমানের চেয়ে প্রোফাইল করা আরও ভাল :)
আপনি অজগর ২.7 এ থাকলে আরও সংক্ষিপ্ত:
>>> t = ((1,'a'),(2,'b'))
>>> {y:x for x,y in t}
{'a':1, 'b':2}
>>> dict([('hi','goodbye')])
{'hi': 'goodbye'}
বা:
>>> [ dict([i]) for i in (('CSCO', 21.14), ('CSCO', 21.14), ('CSCO', 21.14), ('CSCO', 21.14)) ]
[{'CSCO': 21.14}, {'CSCO': 21.14}, {'CSCO': 21.14}, {'CSCO': 21.14}]
এটি করার কয়েকটি উপায় এখানে রইল:
>>> t = ((1, 'a'), (2, 'b'))
>>> # using reversed function
>>> dict(reversed(i) for i in t)
{'a': 1, 'b': 2}
>>> # using slice operator
>>> dict(i[::-1] for i in t)
{'a': 1, 'b': 2}
dict(zip(*zip(*t)[::-1]))
। এটি ধীর, কুরুচিপূর্ণ এবং আরও বেশি মেমরি ব্যবহার করছে .. সম্ভবত 3x।