একটি তালিকায় একটি পুনরাবৃত্তিকে রূপান্তর করার দ্রুততম উপায়


184

একটি iteratorঅবজেক্ট থাকায় , পুনরুক্তিকারীর দ্বারা ফিরিয়ে দেওয়া সামগ্রীর একটি তালিকা পেতে তালিকার বোঝার চেয়ে দ্রুত, আরও ভাল বা আরও কিছু সঠিক?

user_list = [user for user in user_iterator]

1
এটি অনুকূলিতকরণের আগে, নিশ্চিত হয়ে নিন যে আপনি এটি সত্যই বাধা।
এস .লট

1
@ S.Lott। আমি সাধারণত সেই মনোভাবের সাথে একমত হই তবে এই ক্ষেত্রে স্টাইলিস্টিকভাবে এটি খুব বেশি অনুকূলিত হওয়া উচিত যা পাইথনের ক্ষেত্রে প্রায়শই এটি গতির জন্যও অনুকূলিত করে তোলে।
অ্যারোনস্টার্লিং

3
ওপি কোনও বাধা থাকার বিষয়ে কিছুই বলেনি। এটি একটি সাধারণ উত্তর সহ পুরোপুরি সূক্ষ্ম সাধারণ প্রশ্ন, এটি কোনও নির্দিষ্ট অ্যাপ্লিকেশনের উপর নির্ভর করতে হবে না যা কোনও প্রোফাইলারের মাধ্যমে চালানো যেতে পারে।
কেন উইলিয়ামস

4
সবচেয়ে কমপ্যাক্ট উপায় [*iterator]
চ্যালেঞ্জার 5

উত্তর:


335
list(your_iterator)

5
আসলে, প্রায় সর্বদা বেশ দ্রুত। এছাড়াও, আরও অনেক সুস্পষ্ট।
থমাস ওয়াউটারস

8
@ সিস্টেপমন্টোআউট এটি পুরোপুরি সিতে চালিত হয় তালিকাটি বোঝার অজগরটি রয়েছে। অবশ্যই এটি দ্রুত চালায়।
অ্যারোনস্টার্লিং

3
আমি এখনও পুরোপুরি ঘৃণা করি যে অজগরের আর কোনও উপায় নেই। এটি কেবল টুকরো টুকরো করতে বা সূচী করতে সক্ষম হওয়ার জন্য একটি অভিব্যক্তির উভয় দিকই সম্পাদনা করা অত্যন্ত ক্লান্তিকর। (পাইথন 3 এ খুব সাধারণ, যদি এটি জিপের মতো খাঁটি অভিব্যক্তি, বা কোনও খাঁটি ফাংশন সহ মানচিত্র)
জো সো

হুম। import matplotlib.pyplot as plt' followed by ax = plt.gca () `এবং list(ax._get_lines.prop_cycler)একটি অসীম লুপের ফলাফল। এটি পরিচালনা করার জন্য কি কোনও মার্জিত উপায় আছে?
জেনস মুঙ্ক

5
আমার দ্রুত পরীক্ষায়, [*your_iterator]প্রায় দ্বিগুণ দ্রুত হিসাবে উপস্থিত হয়েছিল list(your_iterator)। এটি কি সাধারণত সত্য, বা এটি কেবল একটি নির্দিষ্ট ঘটনা ছিল? (আমি একজন mapপুনরুক্তি হিসাবে ব্যবহার করেছি ))
নিয়নস্টাইন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.