পাইথনের অন্য তালিকায় একটি তালিকা sertোকানোর সিনট্যাক্স কী?


197

দুটি তালিকা দেওয়া:

x = [1,2,3]
y = [4,5,6]

সিনট্যাক্সটি কী:

  1. ঢোকান xমধ্যে yযেমন যে yএখন মনে হচ্ছে [1, 2, 3, [4, 5, 6]]?
  2. সব আইটেম ঢোকান xমধ্যে yযেমন যে yএখন মনে হচ্ছে [1, 2, 3, 4, 5, 6]?

বিপরীত তালিকাবি, সেখান থেকে [listA.insert (পোস্ট, এক্স) এক্স এর জন্য [listB]]
জন মে


1
@ জনমী আপনার মানে listA.insert(pos, x) for x in listB[::-1]?
wizzwizz4

উত্তর:


360

মানে append?

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x.append(y)
>>> x
[1, 2, 3, [4, 5, 6]]

নাকি একীভূত?

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x + y
[1, 2, 3, 4, 5, 6]
>>> x.extend(y)
>>> x
[1, 2, 3, 4, 5, 6] 

3
এটি কি জায়গায় আছে বা একটি নতুন উদাহরণ দেয়?
ড্যানিয়েল মুলার 21

7
x.extend(y)জায়গায় আছে, x+yনতুন তালিকা ফিরে আসছে। এবং x += y, যা এখানে উল্লেখ করা হয়নি, প্রসারিত অনুরূপ।
wim

85

আপনি ঠিক কী অর্জন করতে চান তা প্রশ্নটি পরিষ্কার করে না।

তালিকার একটি appendপদ্ধতি রয়েছে যা তালিকায় তার যুক্তি যুক্ত করে:

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.append(list_two)
>>> list_one
[1, 2, 3, [4, 5, 6]]

এছাড়াও একটি extendপদ্ধতি রয়েছে, যা যুক্তি হিসাবে আপনি পাস করা তালিকা থেকে আইটেম সংযোজন করে :

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.extend(list_two)
>>> list_one
[1, 2, 3, 4, 5, 6]

এবং অবশ্যই, একটি insertপদ্ধতি রয়েছে যা একইভাবে কাজ করে appendতবে আপনাকে সন্নিবেশ বিন্দুটি নির্দিষ্ট করতে দেয়:

>>> list_one.insert(2, list_two)
>>> list_one
[1, 2, [4, 5, 6], 3, 4, 5, 6]

একটি নির্দিষ্ট সন্নিবেশ বিন্দুতে একটি তালিকা প্রসারিত করতে আপনি তালিকা স্লাইসিং ব্যবহার করতে পারেন (ধন্যবাদ, @ ফ্লোরিসা):

>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]

তালিকার স্লাইসিং বেশ নমনীয় কারণ এটি অন্য তালিকাসমূহের একটি রেঞ্জের সাথে তালিকায় থাকা বিভিন্ন প্রস্থানের প্রতিস্থাপন করতে দেয়:

>>> l = [1, 2, 3, 4, 5]
>>> l[2:4] = ['a', 'b', 'c'][1:3]
>>> l
[1, 2, 'b', 'c', 5]

34
আপনি যদি একটি নির্দিষ্ট সন্নিবেশ বিন্দু 'প্রসারিত' থেকে চান, আপনি তালিকা slicing সিনট্যাক্স ব্যবহার করতে পারেন (দেখুন stackoverflow.com/a/7376026/1075152 )
florisla

5
@ ফ্লোরিসালের মন্তব্যটি গ্রহণযোগ্য উত্তর হওয়া উচিত। স্বেচ্ছাসেবী অবস্থানে (কেবল শেষে নয়) জায়গায় অন্য তালিকায় কোনও তালিকা প্রবেশ করার একমাত্র উপায়।
তাঁত

1
@weaver যদিও এটা করতে একমাত্র সমাধান হচ্ছে যে , যে মূল প্রশ্ন ছিল না (একটি নির্দিষ্ট সূচিতে প্রসারিত)।
ফ্লোরিসালা

@ ফ্লোরিসা এটি প্যাডেন্ট্রি।
তাঁত


3

আপনি ঠিক করতে পারেন ...

x += y

এটি গ্রহণযোগ্য উত্তরের একটি মন্তব্য হওয়া উচিত, কারণ এটির মধ্যে একটি উল্লেখ করা হয়েছে x + yএবং x += yঠিক একই জিনিস তবে এটি জায়গায়।
HTNW

এমনটা করার মতো সুনাম আমার নেই, তবে অন্য কেউ পারলে!
ব্যবহারকারী3707850

2

আপনি যদি অন্য তালিকার (তালিকা) শেষে একটি তালিকার (list2) উপাদানগুলিকে যুক্ত করতে চান তবে আপনি তালিকাটি প্রসারিত পদ্ধতিটি ব্যবহার করতে পারেন

list = [1, 2, 3]
list2 = [4, 5, 6]
list.extend(list2)
print list
[1, 2, 3, 4, 5, 6]

অথবা আপনি যদি দুটি তালিকার সাথে তাল মিলাতে চান তবে আপনি + সাইন ব্যবহার করতে পারেন

list3 = list + list2
print list3
[1, 2, 3, 4, 5, 6]

0

যদি আমরা কেবল এটি করি x.append(y), y এর এক্স এর সাথে রেফারেন্স পাওয়া যায় যে y এর যে কোনও পরিবর্তনগুলি সংযুক্ত এক্সকেও প্রভাবিত করবে। সুতরাং আমাদের যদি কেবলমাত্র উপাদানগুলি সন্নিবেশ করতে হয় তবে আমাদের নিম্নলিখিতগুলি করা উচিত:

x = [1,2,3] y = [4,5,6] x.append(y[:])

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