Bài học theo mô-đun (1/4)
Danh sách
danh sách là một chuỗi các phần tử có thứ tự và có thể thay đổi. Đó là
cấu trúc dữ liệu được sử dụng nhiều nhất trong Python: bạn tạo một cấu trúc dữ liệu bằng [] và sửa đổi nó
với một tập hợp các phương pháp đáng ghi nhớ.
Tạo danh sách
vuota = []
numeri = [10, 20, 30]
mista = [1, "due", 3.0, True, None] # tipi diversi: legale ma raroTruy cập theo chỉ mục và lát cắt
Các chỉ mục bắt đầu tại 0. Các chỉ số âm được tính từ bên phải:
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'] reverseMột lát không bao giờ tăng IndexError: nếu nó nằm ngoài phạm vi, nó sẽ trả về một
danh sách phụ trống. Thay vào đó, việc truy cập trực tiếp như parole[10] sẽ làm tăng
ngoại lệ.
Sửa đổi danh sách
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 indiceSắp xếp
Hai hình thức - điều quan trọng là phải phân biệt chúng:
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Độ dài, thành viên, lặp lại
len(nums) # quanti elementi
3 in nums # True/False
for n in nums:
print(n)Sao chép một danh sách
a = b không sao chép — nó chỉ tạo tên thứ hai cho cùng một danh sách. Đến
thực sự sao chép:
copia = lista[:] # slice completo
copia = list(lista) # costruttore esplicito
copia = lista.copy() # metodo(Đây là tất cả các bản sao nông — các phần tử lồng nhau vẫn được chia sẻ.)
Sao chép danh sách: coi chừng tài liệu tham khảo
Trong Python, khi bạn viết list_b = list_a, bạn không tạo bản sao: bạn chỉ tạo tham chiếu thứ hai. Việc sửa đổi list_b cũng sẽ thay đổi list_a. Để tạo một bản sao độc lập thực sự, bạn phải viết list_b = list_a.copy() hoặc sử dụng tính năng cắt hoàn toàn: list_b = list_a[:].
Hãy thử nó
Cho danh sách `nums = [5, 2, 8, 1, 9, 3]`, hãy xây dựng `first_two_sorted` với ba số đầu tiên của các số được sắp xếp theo thứ tự tăng dần. Không sửa đổi số.
Hiển thị gợi ý
nums[:3] là ba số đầu tiên, sau đó được sắp xếp (...).
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Bắt đầu từ `words = ['ciao']`, thêm 'mondo' vào cuối, sau đó chèn '!' lúc đầu. Đánh giá `từ`.
Hiển thị gợi ý
nối vào đuôi, chèn (0, ...) vào đầu.
Giải pháp khả dụng sau 3 lần thử
Thử thách bổ sung
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`.
Hiển thị gợi ý
Cắt với bước phủ định là [::-1]. Gán nó cho Reverse_items.
Giải pháp khả dụng sau 3 lần thử