Hướng dẫn add element to first position list python - thêm phần tử vào danh sách vị trí đầu tiên python

Đã hỏi 8 năm, 9 tháng trước 8 years, 9 months ago

Đã xem 366k lần 366k times

Làm thế nào tôi có thể chèn một phần tử ở chỉ mục đầu tiên của danh sách? Nếu tôi sử dụng list.insert(0, elem), elem có sửa đổi nội dung của chỉ mục đầu tiên không? Hoặc tôi phải tạo một danh sách mới với ELEM đầu tiên và sau đó sao chép danh sách cũ bên trong danh sách mới này?

Hướng dẫn add element to first position list python - thêm phần tử vào danh sách vị trí đầu tiên python

Đã hỏi ngày 21 tháng 2 năm 2014 lúc 16:21Feb 21, 2014 at 16:21

1

Sử dụng insert:

In [1]: ls = [1,2,3]

In [2]: ls.insert(0, "new")

In [3]: ls
Out[3]: ['new', 1, 2, 3]

gặp gỡ

7.2778 Huy hiệu vàng41 Huy hiệu bạc72 Huy hiệu đồng8 gold badges41 silver badges72 bronze badges

Đã trả lời ngày 21 tháng 2 năm 2014 lúc 16:24Feb 21, 2014 at 16:24

michel-slmmichel-slmmichel-slm

9.0783 Huy hiệu vàng31 Huy hiệu bạc31 Huy hiệu Đồng3 gold badges31 silver badges31 bronze badges

0

Từ tài liệu:

list.insert (i, x) Chèn một mục tại một vị trí nhất định. Đối số đầu tiên là chỉ số của phần tử trước đó để chèn, do đó a.insert(0, x) chèn ở phía trước danh sách và

>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
0 tương đương với
>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
1
Insert an item at a given position. The first argument is the index of the element before which to insert, so a.insert(0, x) inserts at the front of the list, and
>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
0 is equivalent to
>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
1

http://docs.python.org/2/tutorial/datastructures.html#more-on-lists

Simonc

41.2K12 Huy hiệu vàng83 Huy hiệu bạc103 Huy hiệu đồng12 gold badges83 silver badges103 bronze badges

Đã trả lời ngày 21 tháng 2 năm 2014 lúc 16:24Feb 21, 2014 at 16:24

9.0783 Huy hiệu vàng31 Huy hiệu bạc31 Huy hiệu ĐồngAnov

Từ tài liệu:2 gold badges20 silver badges26 bronze badges

Công thức vấn đề: Làm thế nào để chèn một phần tử ở vị trí đầu tiên của danh sách trong Python?: How to insert an element at the first position of a list in Python?

Hướng dẫn add element to first position list python - thêm phần tử vào danh sách vị trí đầu tiên python

Dung dịch::

Sử dụng phần tử

>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
2 để chèn phần tử
>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
3 ở vị trí đầu tiên 0 trong danh sách. Tất cả các yếu tố
>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
4 sẽ được di chuyển bởi một vị trí chỉ mục sang bên phải.

>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]

Bạn tạo danh sách

>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
5 và lưu trữ nó trong biến
>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
6.

Tiếp theo, chèn phần tử mới

>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
7 vào vị trí đầu tiên trong danh sách với INDEX 0.

💡 Lưu ý: Python sử dụng lập chỉ mục dựa trên 0 nên vị trí đầu tiên có chỉ mục 0.Note: Python uses zero-based indexing so the first position has index 0.

Danh sách kết quả có 8 yếu tố thay vì chỉ 7. Phần tử 42 mới nằm ở đầu danh sách. Tất cả các yếu tố còn lại được thay đổi bởi một vị trí sang phải.

Để đi sâu hơn vào phương pháp

>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
8 rất quan trọng, tôi đã khuyên bạn nên xem video giải thích đầy đủ của tôi ở đây:

Phương thức Python Danh sách Chèn ()

Lưu ý rằng một số người khuyên bạn nên chèn một phần tử ở vị trí đầu tiên của danh sách như vậy:

>>> lst = [1, 2, 3]
>>> lst = ['new'] + lst
>>> lst
['new', 1, 2, 3]

Mặc dù đầu ra trông giống nhau, nhưng điều này thực sự không giải quyết được vấn đề vì nhà điều hành liên kết danh sách

>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
9 tạo ra một danh sách mới với các yếu tố của hai danh sách hiện có.

Các danh sách ban đầu vẫn không thay đổi.

Chỉ bằng cách gán nó cho biến

>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]
6, bạn ghi đè lên nó. Tuy nhiên, nếu một biến khác sẽ trỏ đến danh sách cũ, tùy chọn này dựa trên danh sách kết hợp sẽ hoạt động vì danh sách cũ vẫn không thay đổi.

>>> lst_1 = [1, 2, 3]
>>> lst_2 = lst_1
>>> lst_2 = ['new'] + lst_2

Trong ví dụ này, bạn tạo hai danh sách

>>> lst = [1, 2, 3]
>>> lst = ['new'] + lst
>>> lst
['new', 1, 2, 3]
1 và
>>> lst = [1, 2, 3]
>>> lst = ['new'] + lst
>>> lst
['new', 1, 2, 3]
2 đều đề cập đến cùng một đối tượng danh sách trong bộ nhớ.

Bạn cố gắng chèn phần tử mới ở đầu danh sách bằng phương pháp có vấn đề. Và bạn có được một cuộc đụng độ cả hai danh sách đề cập đến các đối tượng khác nhau trong bộ nhớ!

>>> lst_2
['new', 1, 2, 3]
>>> lst_1
[1, 2, 3]

Do đó, phương pháp

>>> lst = [1, 2, 3]
>>> lst = ['new'] + lst
>>> lst
['new', 1, 2, 3]
3 vượt trội hơn so với việc kết hợp danh sách để chèn một phần tử tại một vị trí nhất định trong danh sách.

>>> lst_1 = [1, 2, 3]
>>> lst_2 = lst_1
>>> lst_2.insert(0, 'new')
>>> lst_1
['new', 1, 2, 3]
>>> lst_2
['new', 1, 2, 3]

Cả hai biến bây giờ đề cập đến cùng, đối tượng danh sách đã thay đổi.

Đi đâu từ đây?

Nếu bạn quan tâm đến việc tìm hiểu thêm về cấu trúc dữ liệu danh sách quan trọng trong Python, vui lòng kiểm tra khóa học cao cấp của chúng tôi tại Học viện Khoa học Máy tính Finxter:

Hướng dẫn add element to first position list python - thêm phần tử vào danh sách vị trí đầu tiên python

Hướng dẫn add element to first position list python - thêm phần tử vào danh sách vị trí đầu tiên python

Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.

Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer (Nostarch 2020), đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.

Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.