Hướng dẫn how do you add an item to an index in python? - làm thế nào để bạn thêm một mục vào một chỉ mục trong python?

Cách tiếp cận hiệu quả hiệu suất nhất

Bạn cũng có thể chèn phần tử bằng cách sử dụng lập chỉ mục lát trong danh sách. Ví dụ:

>>> a = [1, 2, 4]
>>> insert_at = 2  # Index at which you want to insert item

>>> b = a[:]   # Created copy of list "a" as "b".
               # Skip this step if you are ok with modifying the original list

>>> b[insert_at:insert_at] = [3]  # Insert "3" within "b"
>>> b
[1, 2, 3, 4]

Để chèn nhiều phần tử lại với nhau tại một chỉ mục nhất định, tất cả những gì bạn cần làm là sử dụng

>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]
3 của nhiều yếu tố mà bạn muốn chèn. Ví dụ:inserting multiple elements together at a given index, all you need to do is to use a
>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]
3 of multiple elements that you want to insert. For example:

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]

Để biết thêm về lập chỉ mục lát cắt, bạn có thể tham khảo: Hiểu ký hiệu lát cắt.

Lưu ý: Trong Python 3.x, sự khác biệt về hiệu suất giữa lập chỉ mục lát cắt và

>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]
4 giảm đáng kể và cả hai đều gần như tương đương. Tuy nhiên, trong Python 2.x, sự khác biệt này khá đáng chú ý. Tôi đã chia sẻ so sánh hiệu suất sau trong câu trả lời này. In Python 3.x, difference of performance between slice indexing and
>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]
4 is significantly reduced and both are almost equivalent. However, in Python 2.x, this difference is quite noticeable. I have shared performance comparisons later in this answer.


Thay thế bằng cách sử dụng danh sách hiểu (nhưng rất chậm về mặt hiệu suất): (but very slow in terms of performance):

Thay vào đó, nó cũng có thể đạt được bằng cách sử dụng danh sách hiểu với

>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]
5. (Nhưng xin đừng làm theo cách này. Nó chỉ là để minh họa):

>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]

So sánh hiệu suất của tất cả các giải pháp

Đây là so sánh

>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]
6 của tất cả các câu trả lời với danh sách 1000 yếu tố trên Python 3.9.1 và Python 2.7.16. Câu trả lời được liệt kê theo thứ tự hiệu suất cho cả hai phiên bản Python.

Python 3.9.1

  1. Câu trả lời của tôi bằng cách sử dụng chèn cắt lát - nhanh nhất (2,25 PhaSEC mỗi vòng)

    python3 -m timeit -s "a = list(range(1000))" "b = a[:]; b[500:500] = [3]"
    100000 loops, best of 5: 2.25 µsec per loop
    
  2. Câu trả lời của Rushy Panchal với hầu hết các phiếu bầu bằng cách sử dụng

    python3 -m timeit -s "a = list(range(1000))" "b = a[:]; b.insert(500, 3)"
    100000 loops, best of 5: 2.33 µsec per loop
    
  3. Câu trả lời được chấp nhận của Atoztoa dựa trên sự hợp nhất của các danh sách cắt lát - thứ ba (5,01 PhaSEC mỗi vòng)

    python3 -m timeit -s "a = list(range(1000))" "b = a[:500] + [3] + a[500:]"
    50000 loops, best of 5: 5.01 µsec per loop
    
  4. Câu trả lời của tôi với danh sách hiểu và

    >>> a = [1, 2, 4]
    >>> insert_at = 2
    
    >>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
    >>> b
    [1, 2, 3, 4]
    
    5 - thứ tư (rất chậm với 135 Lausc mỗi vòng)

    python3 -m timeit -s "a = list(range(1000))" "[y for i, x in enumerate(a) for y in ((3, x) if i == 500 else (x, )) ]"
    2000 loops, best of 5: 135 µsec per loop
    

Python 2.7.16

  1. Câu trả lời của tôi bằng cách sử dụng chèn cắt lát - nhanh nhất (2.09 PhaSEC mỗi vòng)

    python -m timeit -s "a = list(range(1000))" "b = a[:]; b[500:500] = [3]"
    100000 loops, best of 3: 2.09 µsec per loop
    
  2. Câu trả lời của Rushy Panchal với hầu hết các phiếu bầu bằng cách sử dụng

    python -m timeit -s "a = list(range(1000))" "b = a[:]; b.insert(500, 3)"
    100000 loops, best of 3: 2.36 µsec per loop
    
  3. Câu trả lời được chấp nhận của Atoztoa dựa trên việc hợp nhất các danh sách cắt lát - thứ ba (4,44 Lausec mỗi vòng)

    python -m timeit -s "a = list(range(1000))" "b = a[:500] + [3] + a[500:]"
    100000 loops, best of 3: 4.44 µsec per loop
    
  4. Câu trả lời của tôi với sự hiểu biết danh sách và

    >>> a = [1, 2, 4]
    >>> insert_at = 2
    
    >>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
    >>> b
    [1, 2, 3, 4]
    
    5 - thứ tư (rất chậm với 103 Lausc mỗi vòng)

    >>> a = [1, 2, 4]
    >>> insert_at = 2   # Index starting from which multiple elements will be inserted
    
    # List of elements that you want to insert together at "index_at" (above) position
    >>> insert_elements = [3, 5, 6]
    
    >>> a[insert_at:insert_at] = insert_elements
    >>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
    [1, 2, 3, 5, 6, 4]
    
    0

Trong bài viết này, chúng tôi sẽ thảo luận về cách chèn một yếu tố trong danh sách ở vị trí cụ thể.

Trong danh sách Python cung cấp chức năng thành viên Chèn () tức là.

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]
1

Nó chấp nhận một vị trí và một phần tử và chèn phần tử tại vị trí đã cho trong danh sách.

Hãy để xem một ví dụ,

Giả sử chúng ta có một danh sách các chuỗi, tức là.

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]
2

Bây giờ hãy để chèn ‘tại sao ở vị trí thứ 3 trong danh sách, tức là.

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]
3

Chỉ mục sẽ bắt đầu từ 0 trong danh sách. Vì vậy, phần tử sẽ được chèn ở vị trí thứ 3, tức là sau 0,1 & 2.

Quảng cáo

Vì vậy, nội dung danh sách sẽ là bây giờ,

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]
4

Chèn một phần tử ở đầu danh sách

Để chèn phần tử ở phía trước của danh sách trên, chức năng gọi chèn (), tức là.

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]
5

Vì vậy, nội dung danh sách sẽ là bây giờ,

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]
6

Chèn tất cả các yếu tố của danh sách khác tại chỉ mục cụ thể trong danh sách đã cho

Giả sử chúng ta có hai danh sách, tức là.

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]
7

Bây giờ chèn tất cả các yếu tố của List2 ở vị trí thứ 3 trong List1

Phương pháp 1:

Lặp lại list2 ngược và tiếp tục chèn phần tử ở chỉ mục thứ 3 trong List1 bằng danh sách.insert () tức là.

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]
8

Phương pháp 2:

Splice list1 từ 0 đến 2 và hợp nhất tất cả các yếu tố của List2 trong đó. Sau đó hợp nhất tất cả các yếu tố còn lại của danh sách từ 3 đến cuối, tức là.

>>> a = [1, 2, 4]
>>> insert_at = 2   # Index starting from which multiple elements will be inserted

# List of elements that you want to insert together at "index_at" (above) position
>>> insert_elements = [3, 5, 6]

>>> a[insert_at:insert_at] = insert_elements
>>> a   # [3, 5, 6] are inserted together in `a` starting at index "2"
[1, 2, 3, 5, 6, 4]
9

Trong cả hai trường hợp, danh sách nội dung sẽ có ngay bây giờ,

>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]
0

Ví dụ hoàn chỉnh như sau,

>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]
1

Output:

>>> a = [1, 2, 4]
>>> insert_at = 2

>>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))]
>>> b
[1, 2, 3, 4]
2 & nbsp;
 

Làm thế nào để bạn thêm một giá trị vào một chỉ mục trong Python?

Python Danh sách chèn () Cú pháp..
Cú pháp: list_name.insert (chỉ mục, phần tử).
Parameters:.
Trả về: Không trả về bất kỳ giá trị nào ..

Làm thế nào để bạn thêm một mục vào một danh sách tại một chỉ mục?

Chèn một mục vào danh sách: chèn () Bạn có thể chèn một mục tại bất kỳ chỉ mục (vị trí) nào bằng phương thức chèn ().Đặt chỉ mục cho tham số đầu tiên và mục được chèn cho tham số thứ hai.with the insert() method. Set the index for the first parameter and the item to be inserted for the second parameter.

Làm thế nào để bạn thêm một phần tử vào một danh sách mảng tại một chỉ mục cụ thể trong Python?

Phương thức chèn () chèn một phần tử vào danh sách tại chỉ mục được chỉ định. inserts an element to the list at the specified index.

Làm thế nào để bạn thêm dữ liệu vào một danh sách trong Python?

Phương thức chèn () chèn giá trị được chỉ định tại vị trí được chỉ định.