Chương này của hướng dẫn của chúng tôi đề cập đến các khía cạnh khác của danh sách. Bạn sẽ học cách chắp thêm và chèn các đối tượng vào danh sách và bạn cũng sẽ học cách xóa và xóa các phần tử bằng cách sử dụng 'remove' và 'pop'
Một danh sách có thể được xem như một ngăn xếp. Ngăn xếp trong khoa học máy tính là một cấu trúc dữ liệu, có ít nhất hai thao tác. một cái có thể được sử dụng để đặt hoặc đẩy dữ liệu vào ngăn xếp và một cái khác để lấy đi phần tử cao nhất của ngăn xếp
Cách thức làm việc có thể được tưởng tượng với một chồng đĩa. Nếu bạn cần một cái đĩa, bạn thường sẽ lấy cái cao nhất. Các đĩa đã sử dụng sẽ được đặt trở lại trên cùng của ngăn xếp sau khi làm sạch. Nếu một ngôn ngữ lập trình hỗ trợ ngăn xếp như cấu trúc dữ liệu, thì nó cũng sẽ cung cấp ít nhất hai thao tác
•push
This method is used to put a new object on the stack. Depending on the point of view, we say that we "push" the object on top or attach it to the right side. Python doesn't offer - contrary to other programming languages - no method with the name "push", but the method "append" has the same functionality.
•pop
This method returns the top element of the stack. The object will be removed from the stack as well.
•peek
Some programming languages provide another method, which can be used to view what is on the top of the stack without removing this element. The Python list class doesn't possess such a method, because it is not needed. A peek can be simulated by accessing the element with the index -1:
lst = ["easy", "simple", "cheap", "free"] lst[-1]
ĐẦU RA
'free'
Đào tạo Python trực tiếp
Thưởng thức trang này?
Thấy. Tổng quan về các khóa học Python trực tiếp
đăng ký tại đây
Pop và Nối
•lst. nối thêm[x]
Phương thức này nối thêm một phần tử vào cuối danh sách "lst"
lst = [3, 5, 7] lst.append[42] lst
ĐẦU RA
[3, 5, 7, 42]
Điều quan trọng là phải hiểu rằng append trả về "Không". Nói cách khác, việc gán lại giá trị trả về thường không hợp lý
lst = [3, 5, 7] lst = lst.append[42] print[lst]
ĐẦU RA
None
•lst. bật [tôi]
'pop' trả về phần tử thứ [i] của danh sách "lst". Phần tử cũng sẽ bị xóa khỏi danh sách
cities = ["Hamburg", "Linz", "Salzburg", "Vienna"] cities.pop[0]
ĐẦU RA
________số 8_______
cities
ĐẦU RA
lst = ["easy", "simple", "cheap", "free"] lst[-1]0
lst = ["easy", "simple", "cheap", "free"] lst[-1]1
ĐẦU RA
lst = ["easy", "simple", "cheap", "free"] lst[-1]2
cities
ĐẦU RA
lst = ["easy", "simple", "cheap", "free"] lst[-1]4
Phương thức 'pop' đưa ra một ngoại lệ IndexError, nếu danh sách trống hoặc chỉ mục nằm ngoài phạm vi
•S. nhạc pop[]
Phương thức 'pop' có thể được gọi mà không cần đối số. Trong trường hợp này, phần tử cuối cùng sẽ được trả về. Vì vậy, s. pop[] tương đương với s. bật [-1]
lst = ["easy", "simple", "cheap", "free"] lst[-1]5
ĐẦU RA
lst = ["easy", "simple", "cheap", "free"] lst[-1]6
lst = ["easy", "simple", "cheap", "free"] lst[-1]7
ĐẦU RA
lst = ["easy", "simple", "cheap", "free"] lst[-1]8
Gia hạn
Chúng tôi thấy rằng thật dễ dàng để thêm một đối tượng vào danh sách. Còn việc thêm nhiều hơn một phần tử vào danh sách thì sao? . Nếu bạn sử dụng append, danh sách khác sẽ được thêm vào dưới dạng danh sách con, như chúng ta có thể thấy trong ví dụ sau
lst = ["easy", "simple", "cheap", "free"] lst[-1]9
ĐẦU RA
'free'0
Với mục đích này, Python cung cấp phương thức 'extend'. Nó mở rộng danh sách bằng cách nối thêm tất cả các phần tử của một lần lặp như danh sách, bộ dữ liệu hoặc chuỗi vào danh sách
'free'1
ĐẦU RA
'free'2
Như chúng tôi đã đề cập, đối số của 'extend' không nhất thiết phải là một danh sách. Nó có thể là bất kỳ loại iterable nào. Nghĩa là, chúng ta cũng có thể sử dụng bộ dữ liệu và chuỗi
'free'3
ĐẦU RA
'free'4
Bây giờ với một tuple
'free'5
ĐẦU RA
'free'6
Đào tạo Python trực tiếp
Thưởng thức trang này?
Thấy. Tổng quan về các khóa học Python trực tiếp
Các khóa học trực tuyến sắp tới
Khái niệm cơ bản về Python cho người mới bắt đầu
Khóa học nâng cao chuyên sâu
Python dành cho kỹ sư và nhà khoa học
Lập trình hướng đối tượng với Python
đăng ký tại đây
Mở rộng và nối thêm danh sách với toán tử '+'
Có một giải pháp thay thế cho 'chắp thêm' và 'mở rộng'. '+' có thể được sử dụng để kết hợp các danh sách
'free'7
ĐẦU RA
'free'8
Hãy cẩn thận. Đừng bao giờ làm những điều sau
'free'9
ĐẦU RA
lst = [3, 5, 7] lst.append[42] lst0
Mặc dù chúng tôi nhận được kết quả tương tự, nhưng nó không phải là cách thay thế cho 'chắp thêm' và 'mở rộng'
lst = [3, 5, 7] lst.append[42] lst1
ĐẦU RA
lst = [3, 5, 7] lst.append[42] lst0
lst = [3, 5, 7] lst.append[42] lst3
ĐẦU RA
lst = [3, 5, 7] lst.append[42] lst0
Phép gán tăng cường [+=] là phép gán thay thế
lst = [3, 5, 7] lst.append[42] lst5
ĐẦU RA
lst = [3, 5, 7] lst.append[42] lst0
Trong ví dụ sau, chúng tôi sẽ so sánh các cách tiếp cận khác nhau và tính toán thời gian chạy của chúng. Để hiểu chương trình sau, bạn cần biết thời gian đó. time[] trả về một số float, thời gian tính bằng giây kể từ cái gọi là ,,The Epoch''1. thời gian. time[] - start_time tính toán thời gian tính bằng giây được sử dụng cho vòng lặp for
lst = [3, 5, 7] lst.append[42] lst7
ĐẦU RA
lst = [3, 5, 7] lst.append[42] lst8
lst = [3, 5, 7] lst.append[42] lst9
ĐẦU RA
[3, 5, 7, 42]0
[3, 5, 7, 42]1
ĐẦU RA
[3, 5, 7, 42]2
Chương trình này trả về kết quả gây sốc
Chúng ta có thể thấy rằng toán tử "+" chậm hơn khoảng 1268 lần so với phương thức append. Lời giải thích thật dễ dàng. Nếu chúng ta sử dụng phương thức append, chúng ta sẽ chỉ cần thêm một phần tử khác vào danh sách trong mỗi lần vượt qua vòng lặp. Bây giờ chúng ta đến với vòng lặp đầu tiên, trong đó chúng ta sử dụng l = l + [i * 2]. Danh sách sẽ được sao chép trong mỗi vòng lặp. Phần tử mới sẽ được thêm vào bản sao của danh sách và kết quả sẽ được gán lại cho biến l. Sau đó, danh sách cũ sẽ phải bị xóa bởi Python, vì nó không còn được tham chiếu nữa. Chúng ta cũng có thể thấy rằng phiên bản có phép gán tăng cường ["+="], vòng lặp ở giữa, chỉ chậm hơn một chút so với phiên bản sử dụng "chắp thêm"
Loại bỏ một phần tử với remove
Có thể xóa một giá trị nhất định khỏi danh sách mà không cần biết vị trí bằng phương thức "xóa"
[3, 5, 7, 42]3
Cuộc gọi này sẽ xóa lần xuất hiện đầu tiên của 'x' khỏi danh sách 's'. Nếu 'x' không có trong danh sách, ValueError sẽ được nâng lên. Chúng ta sẽ gọi phương thức remove ba lần trong ví dụ sau để xóa màu "green". Vì màu "xanh lục" chỉ xuất hiện hai lần trong danh sách, chúng tôi nhận được ValueError ở lần thứ ba
[3, 5, 7, 42]4
ĐẦU RA
[3, 5, 7, 42]5
[3, 5, 7, 42]6
ĐẦU RA
[3, 5, 7, 42]7
[3, 5, 7, 42]8
ĐẦU RA
[3, 5, 7, 42]9
Đào tạo Python trực tiếp
Thưởng thức trang này?
Thấy. Tổng quan về các khóa học Python trực tiếp
đăng ký tại đây
Tìm vị trí của một phần tử trong danh sách
Phương thức "index" có thể được sử dụng để tìm vị trí của một phần tử trong danh sách
lst = [3, 5, 7] lst = lst.append[42] print[lst]0
Nó trả về chỉ mục đầu tiên của giá trị x. Một ValueError sẽ được nâng lên, nếu không có giá trị. Nếu tham số tùy chọn i được cung cấp, quá trình tìm kiếm sẽ bắt đầu tại chỉ mục i. Nếu j cũng được đưa ra, việc tìm kiếm sẽ dừng lại ở vị trí j
lst = [3, 5, 7] lst = lst.append[42] print[lst]1
ĐẦU RA
lst = [3, 5, 7] lst = lst.append[42] print[lst]2
lst = [3, 5, 7] lst = lst.append[42] print[lst]3
ĐẦU RA
lst = [3, 5, 7] lst = lst.append[42] print[lst]4
lst = [3, 5, 7] lst = lst.append[42] print[lst]5
ĐẦU RA
lst = [3, 5, 7] lst = lst.append[42] print[lst]4
lst = [3, 5, 7] lst = lst.append[42] print[lst]7
ĐẦU RA
lst = [3, 5, 7] lst = lst.append[42] print[lst]8
Chèn
Chúng ta đã học được rằng chúng ta có thể đặt một phần tử vào cuối danh sách bằng cách sử dụng phương thức "chắp thêm". Để làm việc hiệu quả với một danh sách, chúng ta cũng cần một cách để thêm các phần tử vào các vị trí tùy ý bên trong danh sách. Điều này có thể được thực hiện bằng phương pháp "chèn"
lst = [3, 5, 7] lst = lst.append[42] print[lst]9
Một đối tượng "đối tượng" sẽ được đưa vào danh sách "s". "đối tượng" sẽ được đặt trước phần tử s[index]. s[index] sẽ là "đối tượng" và tất cả các phần tử khác sẽ được di chuyển sang bên phải
None0
ĐẦU RA
None1
Chức năng của phương thức "chắp thêm" có thể được mô phỏng bằng cách chèn theo cách sau
None2
ĐẦU RA
None3
chú thích
1 Thời gian kỷ nguyên [còn được gọi là thời gian Unix hoặc thời gian POSIX] là một hệ thống mô tả các thời điểm trong thời gian, được định nghĩa là số giây đã trôi qua kể từ 00. 00. 00 Giờ Phối hợp Quốc tế [UTC], Thứ Năm, ngày 1 tháng 1 năm 1970, không tính giây nhuận