পাইথন: দুটি তালিকা থেকে আইটেমগুলিকে আন্তঃলিপ্ত করার সবচেয়ে সংক্ষিপ্ততম উপায়


9

আমি তালিকা 3 প্রাপ্ত করার জন্য সবচেয়ে সংক্ষিপ্ততম উপায় (সম্ভব চরিত্রের) পাওয়ার চেষ্টা করছি।

তালিকা 1 এবং তালিকা 2 ইতিমধ্যে আমাকে তর্ক হিসাবে দেওয়া হয়েছে এবং একই দৈর্ঘ্য।

l1 = [1, 2, 3, 4, 5]
l2 = ['a', 'b', 'c', 'd', 'e']

এবং তালিকা 3 এর মতো দেখতে হবে (হ্যাঁ, এটি একটি তালিকা হওয়া দরকার):

l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]

2
আপনার দেওয়া লক্ষ্যটি আক্ষরিক অর্থে নির্দিষ্ট তালিকা l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]দেওয়া l1 = [1, 2, 3, 4, 5]এবং l2 = ['a', 'b', 'c', 'd', 'e']ইতিমধ্যে নির্ধারিত তালিকা আউটপুট করার জন্য , বা এই ধারণাটি কি l1এবং l2একই দৈর্ঘ্যের কোনও দুটি তালিকা হতে পারে?
xnor

উত্তর:


13

জিপ এবং সম

[*sum(zip(l2,l1),())]

এটি অনলাইন চেষ্টা করুন!

দুটি তালিকা একসাথে জিপ করুন তারপরে একটি সংযুক্ত তালিকা তৈরি করতে সমস্ত টিপল যুক্ত করুন। জিপগুলি কেবল তখনই কাজ করে যদি তালিকাগুলি একই আকারের গ্যারান্টিযুক্ত হয়, অন্যথায় এটি দীর্ঘ তালিকাকে ছোট করে দেয়।

[* ]FryAmTheEggman এর পরামর্শ অনুসারে পার্শ্ববর্তীটিকে এটিকে তালিকায় রূপান্তর করতে যুক্ত করেছে ।


2
পাইথন 2 ব্যবহার করা হলে আপনি +3 বাইটের listপরিবর্তে ব্যবহার করতে পারেন [* (...) ]
এরিক আউটগল্ফার

7

স্লাইস অ্যাসাইনমেন্ট

c=a*2
c[1::2]=a
c[::2]=b

জো কিং এর সমাধান ব্যবহারের চেয়ে এটি তিন বাইট বেশি c=[*sum(zip(b,a),())], তবে এটি নিফটি। এটি পরিস্থিতিগতভাবে সংক্ষিপ্ত হতে পারে (তবে আমি কোথায় তা ভাবতে পারি না)।

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