কীভাবে তালিকায় জিপ করবেন


92

আমি নিম্নলিখিত তালিকাগুলি জিপ করতে চাই:

>>> zip([[1,2], [3,4], [5,6]])
[[1,3,5], [2,4,6]]

zipতালিকাটি পৃথক উপাদানগুলিতে বিভক্ত করা হলে কেবলমাত্র বর্তমান প্রয়োগের মাধ্যমে এটি অর্জন করা যেতে পারে :

>>> zip([1,2], [3,4], [5,6])
   (1, 3, 5), (2, 4, 6)]

কীভাবে তালিকাটি বিভক্ত করবেন এবং পৃথক উপাদানগুলিতে কীভাবে পাস করবেন তা অনুমান করতে পারছি না zip। একটি কার্যকরী সমাধান পছন্দ করা হয়।

উত্তর:


146

এটা চেষ্টা কর:

>>> zip(*[[1,2], [3,4], [5,6]])
[(1, 3, 5), (2, 4, 6)]

যুক্তিযুক্ত তালিকাগুলি আনপ্যাকিংয়ের দেখুন :

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

>>> range(3, 6)             # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args)            # call with arguments unpacked from a list
[3, 4, 5]

4
এটি কীভাবে কাজ করে তার জন্য ডকস.পিথন.আর. / টিউটোরিয়াল/… দেখুন ।
আমির

4
আপনার যদি দশ মিলিয়ন এন্ট্রি সহ একটি তালিকা থাকে তবে আমি একটি বিকল্প দেখতে চাই। একটি ফাংশন কলে মিলিয়ন আইটেম আনপ্যাক করা ভাল ধারণা নাও হতে পারে ...
Blixt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.