মূল কন্টেন্টে যান
মডিউল 3 · 1-এর পাঠ 4কোর্সে 9/36~12 min
মডিউল পাঠ (1/4)

তালিকা

একটি তালিকা হল উপাদানগুলির একটি ক্রমকৃত এবং পরিবর্তনযোগ্য ক্রম। এটা হল পাইথনে সর্বাধিক ব্যবহৃত ডেটা স্ট্রাকচার: আপনি [] দিয়ে একটি তৈরি করুন এবং এটি সংশোধন করুন মনে রাখার মত পদ্ধতির একটি সেট সহ।

একটি তালিকা তৈরি করা হচ্ছে

Python
vuota = []
numeri = [10, 20, 30]
mista = [1, "due", 3.0, True, None]    # tipi diversi: legale ma raro

সূচক এবং স্লাইস দ্বারা অ্যাক্সেস

সূচীগুলি 0 এ শুরু হয়৷ নেতিবাচক সূচক ডান থেকে গণনা করা হয়:

Python
parole = ["a", "b", "c", "d"]
parole[0]    # 'a'
parole[-1]   # 'd'   (ultimo)
parole[1:3]  # ['b', 'c']   slice [start:stop]
parole[::-1] # ['d', 'c', 'b', 'a']   reverse

একটি স্লাইস কখনই IndexError বাড়ায় না: যদি এটি পরিসীমার বাইরে হয় তবে এটি একটি ফেরত দেয় খালি উপ-তালিকা। সরাসরি অ্যাক্সেস যেমন parole[10], পরিবর্তে, একটি বাড়ায় ব্যতিক্রম

একটি তালিকা সংশোধন করা হচ্ছে

Python
nums = [1, 2, 3]
nums.append(4)         # [1, 2, 3, 4]    aggiunge in fondo
nums.insert(0, 0)      # [0, 1, 2, 3, 4] inserisce in posizione
nums.extend([5, 6])    # [0, 1, 2, 3, 4, 5, 6]   concatena
nums.pop()             # 6   estrae ultimo
nums.pop(0)            # 0   estrae primo (più lento: O(n))
nums.remove(3)         # rimuove la PRIMA occorrenza di 3
nums[1] = 99           # sostituisce per indice

বাছাই

দুটি ফর্ম - তাদের আলাদা করে বলা গুরুত্বপূর্ণ:

Python
nums = [3, 1, 4, 1, 5, 9, 2, 6]
nums.sort()          # MUTA nums in place, ritorna None
ordinati = sorted(nums)  # ritorna NUOVA lista, lascia nums invariata
nums.sort(reverse=True)
sorted(nums, key=lambda n: -n)   # ordinamento per chiave

দৈর্ঘ্য, সদস্যপদ, পুনরাবৃত্তি

Python
len(nums)              # quanti elementi
3 in nums              # True/False
for n in nums:
    print(n)

একটি তালিকা অনুলিপি করা হচ্ছে

a = b অনুলিপি করে না — এটি একই তালিকার জন্য একটি দ্বিতীয় নাম তৈরি করে। প্রতি আসলে কপি:

Python
copia = lista[:]            # slice completo
copia = list(lista)         # costruttore esplicito
copia = lista.copy()        # metodo

(এগুলি সমস্ত অগভীর কপি — নেস্টেড উপাদানগুলি ভাগ করা থাকে৷)

তালিকা অনুলিপি করা: রেফারেন্সের জন্য সতর্ক

পাইথনে, আপনি যখন list_b = list_a লিখবেন, আপনি একটি অনুলিপি তৈরি করছেন না: আপনি কেবল একটি দ্বিতীয় রেফারেন্স তৈরি করছেন। list_b সংশোধন করা list_a কেও পরিবর্তন করবে। একটি সত্যিকারের স্বাধীন কপি তৈরি করতে, আপনাকে লিখতে হবে list_b = list_a.copy() অথবা সম্পূর্ণ স্লাইসিং ব্যবহার করুন: list_b = list_a[:]৷

চেষ্টা করে দেখুন

ব্যায়াম#python.m3.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

'সংখ্যা = [5, 2, 8, 1, 9, 3]' তালিকা দেওয়া, ঊর্ধ্ব ক্রমে সাজানো সংখ্যার প্রথম তিনটি সংখ্যা দিয়ে `first_three_sorted` তৈরি করুন। সংখ্যা পরিবর্তন করবেন না।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

nums[:3] প্রথম তিনটি, তারপর সাজানো(...)।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম পর্যালোচনা করুন

ব্যায়াম#python.m3.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

`শব্দ = ['ciao']` থেকে শুরু করে শেষে 'mondo' যোগ করুন, তারপর '!' শুরুতে 'শব্দ' মূল্যায়ন করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

লেজে যুক্ত করুন, মাথায় ঢোকান(0, ...)।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

অতিরিক্ত চ্যালেঞ্জ

ব্যায়াম#python.m3.l1.e3
প্রচেষ্টা: 0লোড হচ্ছে...

Given the list `items = [10, 20, 30, 40]`, use slicing to create a new list `reversed_items` containing the same elements but in reverse order. Finally, evaluate `reversed_items`.

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

একটি নেতিবাচক পদক্ষেপের সাথে স্লাইস করা হল [::-1]। এটিকে বিপরীত_আইটেমগুলিতে বরাদ্দ করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ