পাইথনে এক লাইনে একাধিক আইটেম সংযোজন কীভাবে


91

আমার আছে:

count = 0
i = 0
while count < len(mylist):
    if mylist[i + 1] == mylist[i + 13] and mylist[i + 2] == mylist[i + 14]:
        print mylist[i + 1], mylist[i + 2]
    newlist.append(mylist[i + 1])
    newlist.append(mylist[i + 2])
    newlist.append(mylist[i + 7])
    newlist.append(mylist[i + 8])
    newlist.append(mylist[i + 9])
    newlist.append(mylist[i + 10])
    newlist.append(mylist[i + 13])
    newlist.append(mylist[i + 14])
    newlist.append(mylist[i + 19])
    newlist.append(mylist[i + 20])
    newlist.append(mylist[i + 21])
    newlist.append(mylist[i + 22])
    count = count + 1
    i = i + 12

আমি newlist.append()বিবৃতিটি কয়েকটি বক্তব্য তৈরি করতে চেয়েছিলাম ।


ভাল আপনি স্পষ্টতই বিভিন্ন ফলাফল পেতে যদি এটি একই হয় না।
জেজেজে

এটি অবৈধ সিনট্যাক্স।
টেরিএ

4
আপনার অবজেক্টগুলি তালিকাভুক্ত বোঝানো হচ্ছে ধরে নেওয়া, আপনার কোডটি পাইথন বৈধ নয় কারণ আপনি এটির []পরিবর্তে ব্যবহার করছেন ()। বাস্তব কাজের কোড পোস্ট করুন।
ব্রেণবার্ন

উত্তর:


227

একটি সম্পূর্ণ ক্রম সংযোজনের জন্য পদ্ধতি list.extend()

>>> L = [1, 2]
>>> L.extend((3, 4, 5))
>>> L
[1, 2, 3, 4, 5]

'সংযোজন' ফাংশনগুলিকে 'সংযোজন' হিসাবে চিহ্নিত করে তবে তালিকার শুরুতে যুক্ত করে। তালিকার শুরুতে একাধিক মান যুক্ত করার কোনও ফাংশন আছে কি?
স্প্যারো

@ স্প্যারো: না। পরিবর্তে স্লাইস-অ্যাসাইন করুন।
Ignacio Vazquez-Abram

একটি তালিকা হতে আপনার কি দ্বিতীয় ইনপুট দরকার বা এটি কেবল প্রতিটি উপাদানকে কমা দ্বারা পৃথক করা যেতে পারে?
চার্লি পার্কার 21

@ চর্লিপারপার্ক: যুক্তিটি list.extend()অবশ্যই পুনরাবৃত্ত হতে হবে।
ইগনাসিও ওয়াজকেজ-আব্রামগুলি

5

না

প্রথমত, appendএকটি ফাংশন, তাই আপনি লিখতে পারবেন না append[i+1:i+4]কারণ আপনি এমন কোনও জিনিসের স্লাইস পাওয়ার চেষ্টা করছেন যা ক্রম নয়। (আপনি এটি একটি উপাদান পেতে পারে না, হয়: append[i+1]একই কারণে ভুল।) আপনি যখন একটি ফাংশন কল, যুক্তি যায় প্রথম বন্ধনী , অর্থাত্ বৃত্তাকার বেশী: ()

দ্বিতীয়ত, আপনি যা করার চেষ্টা করছেন তা হ'ল "ক্রম নিন, এবং প্রতিটি উপাদানটিকে এই অন্যান্য অনুক্রমের শেষে, মূল ক্রমে রাখুন"। এটা বানান extendappendহ'ল "এই জিনিসটি নিন, এবং তালিকাটির শেষে রাখুন, একক আইটেম হিসাবে , এমনকি এটি একটি তালিকা "। (মনে রাখবেন যে তালিকাটি এক ধরণের ক্রম।

তবে, আপনার সচেতন হওয়া দরকার যে i+1:i+4এটি একটি বিশেষ নির্মাণ যা কেবল বর্গাকার বন্ধনীগুলির ভিতরে প্রদর্শিত হয় (ক্রম থেকে স্লাইস পেতে) এবং ব্রেসগুলি (কোনও dictবস্তু তৈরি করতে )। আপনি এটি কোনও ফাংশনে পাস করতে পারবেন না। সুতরাং আপনি extendযে সঙ্গে করতে পারবেন না । আপনাকে সেই মানগুলির ক্রম তৈরি করতে হবে এবং এটি করার প্রাকৃতিক rangeউপায়টি ফাংশনটির সাথে।



2

এটা ব্যবহার কর :

#Inputs
L1 = [1, 2]
L2 = [3,4,5]

#Code
L1+L2

#Output
[1, 2, 3, 4, 5]

(+) অপারেটরটি ব্যবহার করে আপনি কেবল এক লাইনের কোডে একাধিক সংযোজন ও প্রসারিত অপারেটরগুলি এড়িয়ে যেতে পারেন এবং এটি L1 + L2 + L3 + L4 ....... ইত্যাদি দ্বারা আরও দুটি তালিকার জন্য বৈধ।

শুভ শেখা ... :)


1
mylist = [1,2,3]

def multiple_appends(listname, *element):
    listname.extend(element)

multiple_appends(mylist, 4, 5, "string", False)
print(mylist)

আউটপুট:

[1, 2, 3, 4, 5, 'string', False]

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