পাইথন> = 3.5 বিকল্প: আক্ষরিক তালিকায় আনপ্যাক করুন [*newdict]
পাইথন 3.5 এর সাথে নতুন আনপ্যাকিং জেনারালাইজেশন (পিইপি 448) প্রবর্তিত হয়েছিল যা আপনাকে এখন সহজেই করতে দেয়:
>>> newdict = {1:0, 2:0, 3:0}
>>> [*newdict]
[1, 2, 3]
পুনরাবৃত্তিযোগ্য যে কোনও বস্তুর সাথে *
কাজগুলি আনপ্যাক করা এবং যেহেতু অভিধানগুলি পুনরাবৃত্তি করার সময় তাদের কীগুলি ফিরিয়ে দেয়, আপনি সহজেই তালিকার ভিতরে এটি ব্যবহার করে একটি তালিকা তৈরি করতে পারেন।
.keys()
অর্থাত্ যোগ করা [*newdict.keys()]
আপনার উদ্দেশ্যকে আরও স্পষ্ট করে তুলতে সহায়তা করতে পারে যদিও এটির জন্য আপনাকে একটি ফাংশন চেহারা এবং অনুরোধ করতে হবে। (যা সত্য, সত্যই উদ্বিগ্ন হওয়া উচিত নয় )।
*iterable
সিনট্যাক্স করছেন অনুরূপ list(iterable)
বৈশিষ্ট্য ও আচরণ প্রাথমিকভাবে মধ্যে নথিভুক্ত করা হয় কল অধ্যায় পাইথন সহায়িকা করুন। পিইপি 448 দিয়ে যেখানে *iterable
উপস্থিত হতে পারে তার উপর নিষেধাজ্ঞা শিথিল করা হয়েছিল যাতে এটি তালিকা, সেট এবং টুপল লিটারালগুলিতেও স্থাপন করা যায়, এক্সপ্রেশন তালিকাগুলির রেফারেন্স ম্যানুয়ালও এটি আপডেট করতে আপডেট করা হয়েছিল।
যদিও list(newdict)
এটি দ্রুততর (কমপক্ষে ছোট অভিধানের জন্য) পার্থক্যের সাথে সমান কারণ কোনও ফাংশন কল আসলেই সম্পাদিত হয় না:
%timeit [*newdict]
1000000 loops, best of 3: 249 ns per loop
%timeit list(newdict)
1000000 loops, best of 3: 508 ns per loop
%timeit [k for k in newdict]
1000000 loops, best of 3: 574 ns per loop
বৃহত্তর অভিধান সহ গতিটি প্রায় একই রকম (একটি বৃহত সংগ্রহের মাধ্যমে পুনরাবৃত্তির ওভারহেড একটি ফাংশন কলের স্বল্প ব্যয়কে ট্রাম্প করে)।
অনুরূপ ফ্যাশনে, আপনি অভিধান কীগুলির টিপল এবং সেট তৈরি করতে পারেন:
>>> *newdict,
(1, 2, 3)
>>> {*newdict}
{1, 2, 3}
টিউপল মামলায় চলমান কমা থেকে সাবধান!