পাইথন: এন বার তালিকাতে আইটেম যুক্ত করুন


91

এটি দেখে মনে হচ্ছে পাইথনের কোনও শর্টকাট থাকবে। আমি কার্যকরভাবে এটি করে N তালিকাতে একটি আইটেম যুক্ত করতে চাই:

l = []
x = 0
for i in range(100):
    l.append(x)

এটি আমার কাছে মনে হবে যে এর জন্য একটি "অনুকূলিত" পদ্ধতি হওয়া উচিত, এরকম কিছু:

l.append_multiple(x, 100)

আছে?


9
l.extend([x] * 100)এটি আমার পরিস্থিতি সবচেয়ে ভাল ফিট হবার সাথে সাথেই শেষ । অ্যাম্বার সর্বাধিক বিস্তৃত হওয়ার জন্য উত্তর ক্রেডিট পান। ধন্যবাদ!
তোজি

4
অপ্রয়োজনীয় কোনও কিছুর জন্য এটি ব্যবহার করার আগে আপনি পাইথনের রেফারেন্স শব্দার্থকতা বুঝতে পেরেছেন তা নিশ্চিত করুন। X এর সাথে যুক্ত এক্স এর সমস্তগুলি একই x, সুতরাং তাদের মধ্যে একটিকে পরিবর্তিত করা তাদের সমস্তকে প্রভাবিত করে (তাদের প্রত্যেককেই 100 বার বলা হয়েছে)।
কার্ল নচেটেল

4
স্পষ্টতার জন্য: আমি এটি পূর্ণসংখ্যার জন্য ব্যবহার করছি তাই আমার ব্যবহার নিরাপদ।
তোজি

উত্তর:


132

অপরিবর্তনীয় তথ্য প্রকারের জন্য:

l = [0] * 100
# [0, 0, 0, 0, 0, ...]

l = ['foo'] * 100
# ['foo', 'foo', 'foo', 'foo', ...]

রেফারেন্স দ্বারা সংরক্ষিত মানগুলির জন্য এবং আপনি পরে সংশোধন করতে পারেন (উপ-তালিকা, বা ডিক্টের মতো):

l = [{} for x in range(100)]

(প্রথম পদ্ধতিটি কেন্দ্রে বা স্ট্রিংগুলির মতো ধ্রুবক মানের জন্য কেবলমাত্র একটি ভাল ধারণা, কারণ <list>*<number>সিন্টেক্সটি ব্যবহার করার সময় কেবল অগভীর অনুলিপি করা হয় , এবং যদি আপনি এর মতো কিছু করেন তবে আপনি [{}]*100100 টি রেফারেন্স দিয়ে শেষ করতে চান) একই অভিধানে - সুতরাং তাদের মধ্যে একটি পরিবর্তন করলে সেগুলি সবই বদলে যাবে Since যেহেতু ইনটস এবং স্ট্রিং পরিবর্তনযোগ্য, তাই এটি তাদের পক্ষে সমস্যা নয়))

আপনি যদি কোনও বিদ্যমান তালিকায় যুক্ত করতে চান তবে আপনি extend()সেই তালিকার পদ্ধতিটি ব্যবহার করতে পারেন (উপরের কৌশলগুলির মাধ্যমে জিনিসগুলির তালিকাগুলি তৈরির সাথে একত্রে):

a = [1,2,3]
b = [4,5,6]
a.extend(b)
# a is now [1,2,3,4,5,6]

4
বা উভয় পরামর্শকে সেই আকারে একত্রিত করুন a.extend(b*n)যেখানে nআপনি খ
DarkCygnus

26

শেষ পর্যন্ত একটি তালিকা বোধগম্যতা যুক্ত করতে প্রসারিত ব্যবহার করুন।

l.extend([x for i in range(100)])

দেখুন পাইথন ডক্স আরও তথ্যের জন্য।


6

আমাকে একটি অ্যাসাইনমেন্টের জন্য অন্য পথে যেতে হয়েছিল তবে এটিই আমি শেষ করেছি।

my_array += ([x] * repeated_times)

5

Itertools পুনরাবৃত্তি তালিকা প্রসারিত সঙ্গে মিলিত।

from itertools import repeat
l = []
l.extend(repeat(x, 100))


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