Hướng dẫn how do i remove two last elements from a list in python? - làm cách nào để xóa hai phần tử cuối cùng khỏi danh sách trong python?

Như Vincenzooo đã nói chính xác, Pythonic lst[:-n] không hoạt động khi n==0.

Các tác phẩm sau đây cho tất cả

    lst[-n:n and None] = []
0:

lst = lst[:-n or None]

Tôi thích giải pháp này vì nó cũng có thể đọc được bằng tiếng Anh: "Trả lại một lát bỏ qua các yếu tố N cuối cùng hoặc không có (nếu không cần phải bỏ qua)".

Giải pháp này hoạt động vì những điều sau đây:

  •     lst[-n:n and None] = []
    
    1 đánh giá thành
        lst[-n:n and None] = []
    
    2 khi
        lst[-n:n and None] = []
    
    2 đúng về mặt logic (ví dụ: khi nó không phải là
        lst[-n:n and None] = []
    
    4,
        lst[-n:n and None] = []
    
    5,
        lst[-n:n and None] = []
    
    6,
        lst[-n:n and None] = []
    
    7, ...) và
        lst[-n:n and None] = []
    
    8 khác. Vì vậy,
        lst[-n:n and None] = []
    
    9 là
    print(lst[-1])  # 4
    print(lst[:-1]) # [1, 2, 3]
    print(lst)      # [1, 2, 3, 4]
    
    0 khi
    print(lst[-1])  # 4
    print(lst[:-1]) # [1, 2, 3]
    print(lst)      # [1, 2, 3, 4]
    
    1 và
        lst[-n:n and None] = []
    
    7 khi n==0.
  • Khi cắt,
        lst[-n:n and None] = []
    
    7 tương đương với việc bỏ qua giá trị, do đó
    print(lst[-1])  # 4
    print(lst[:-1]) # [1, 2, 3]
    print(lst)      # [1, 2, 3, 4]
    
    5 giống như
    print(lst[-1])  # 4
    print(lst[:-1]) # [1, 2, 3]
    print(lst)      # [1, 2, 3, 4]
    
    6 (xem tại đây).

Theo ghi nhận của @SWK, giải pháp này tạo ra một danh sách mới (nhưng ngay lập tức loại bỏ cái cũ trừ khi nó được tham chiếu ở nơi khác) thay vì chỉnh sửa bản gốc. Đây thường không phải là vấn đề về hiệu suất vì tạo một danh sách mới trong một lần thường nhanh hơn so với việc loại bỏ một yếu tố tại thời điểm đó (trừ khi

print(lst[-1])  # 4
print(lst[:-1]) # [1, 2, 3]
print(lst)      # [1, 2, 3, 4]
7

Một giải pháp khả thi (theo cùng một kiểu với cái gốc của tôi) hoạt động cho ____10 nhưng: a) không tạo ra một bản sao của danh sách; và b) cũng ảnh hưởng đến các tham chiếu khác vào cùng một danh sách, có thể là như sau:

    lst[-n:n and None] = []

Điều này chắc chắn là không thể đọc được và không nên sử dụng. Trên thực tế, ngay cả giải pháp ban đầu của tôi cũng đòi hỏi quá nhiều sự hiểu biết về ngôn ngữ để được mọi người đọc và hiểu một cách đơn giản. Tôi sẽ không sử dụng trong bất kỳ mã thực nào và tôi nghĩ rằng giải pháp tốt nhất là bởi @Wonder.Mice:

del lst[-1:]
print(lst]) # [1, 2, 3]
1.

Việc loại bỏ các yếu tố

del lst[-1:]
print(lst]) # [1, 2, 3]
2 cuối cùng của một danh sách đôi khi có thể khó khăn.

Giả sử tôi có danh sách sau đây.

Hầu hết chúng ta đều biết rằng chúng ta có thể sử dụng

del lst[-1:]
print(lst]) # [1, 2, 3]
3 để có được yếu tố cuối cùng của danh sách. Tương tự, chúng ta có thể sử dụng ký hiệu lát cắt cùng với chỉ số âm để loại bỏ phần tử cuối cùng.

print(lst[-1])  # 4
print(lst[:-1]) # [1, 2, 3]
print(lst)      # [1, 2, 3, 4]

Lưu ý rằng điều này sẽ tạo ra một bản sao nông của danh sách. Chúng ta có thể xóa phần tử

del lst[-1:]
print(lst]) # [1, 2, 3]
2 cuối cùng của danh sách như vậy:

Nhưng, điều này thực sự không hoạt động khi

del lst[-1:]
print(lst]) # [1, 2, 3]
5 vì nó dẫn đến hoạt động này, điều này sẽ không lấy gì từ danh sách.

Chúng ta có thể phá vỡ điều này bằng cách cắt với

    lst[-n:n and None] = []
9, sẽ đánh giá thành
print(lst[-1])  # 4
print(lst[:-1]) # [1, 2, 3]
print(lst)      # [1, 2, 3, 4]
0 khi
del lst[-1:]
print(lst]) # [1, 2, 3]
8 và
    lst[-n:n and None] = []
7 khi
del lst[-1:]
print(lst]) # [1, 2, 3]
5.

Xóa các phần tử del lst[-1:] print(lst]) # [1, 2, 3] 2 cuối cùng bằng cách sử dụng The original list is : [1, 4, 6, 3, 5, 8] The list after removing last K elements : [1, 4, 6]2

Nếu chúng tôi không muốn gán lại danh sách, chúng tôi có thể trực tiếp sửa đổi danh sách ban đầu với

The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
2.

del lst[-1:]
print(lst]) # [1, 2, 3]

Để loại bỏ các phần tử

del lst[-1:]
print(lst]) # [1, 2, 3]
2 cuối cùng trong danh sách, chúng ta có thể thực hiện như sau:

Chúng ta thường đến các tình huống trong đó chúng ta cần giảm kích thước của danh sách bằng cách cắt ngắn các yếu tố cuối cùng của danh sách. Điều này có ứng dụng của nó trong lập trình hàng ngày khi đôi khi chúng tôi yêu cầu nhận tất cả các danh sách có kích thước tương tự hoặc xóa một vài hồ sơ cuối cùng khỏi danh sách. Hãy để thảo luận về một vài cách mà nhiệm vụ này có thể được thực hiện.

Sử dụng Len () + Danh sách cắt để loại bỏ các yếu tố k cuối cùng của danh sách

Danh sách cắt có thể thực hiện nhiệm vụ cụ thể này, trong đó chúng tôi chỉ cắt LEN đầu tiên (danh sách) - K Các yếu tố để nằm trong danh sách và do đó loại bỏ các yếu tố k cuối cùng.

Ở đây chúng tôi tìm thấy độ dài của danh sách hiện tại và tính độ dài sẽ là sau khi xóa các phần tử N (LEN_L - L), sau đó sử dụng cắt, chúng tôi tạo một danh sách sao chép, trong đó nó đã bị xóa các yếu tố cuối cùng.

Python3

The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
5
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
7
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
8
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
0
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
2
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
4
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6____49
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
8
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
0
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
1
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
2
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
3
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
4
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
5

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
4

The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
2
    lst[-n:n and None] = []
73
List after removing elements: [1, 7, 6]
4
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
4
    lst[-n:n and None] = []
76

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
0
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
1
    lst[-n:n and None] = []
79
    lst[-n:n and None] = []
80

Chúng ta thường đến các tình huống trong đó chúng ta cần giảm kích thước của danh sách bằng cách cắt ngắn các yếu tố cuối cùng của danh sách. Điều này có ứng dụng của nó trong lập trình hàng ngày khi đôi khi chúng tôi yêu cầu nhận tất cả các danh sách có kích thước tương tự hoặc xóa một vài hồ sơ cuối cùng khỏi danh sách. Hãy để thảo luận về một vài cách mà nhiệm vụ này có thể được thực hiện.

The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]

Sử dụng Len () + Danh sách cắt để loại bỏ các yếu tố k cuối cùng của danh sách

Danh sách cắt có thể thực hiện nhiệm vụ cụ thể này, trong đó chúng tôi chỉ cắt LEN đầu tiên (danh sách) - K Các yếu tố để nằm trong danh sách và do đó loại bỏ các yếu tố k cuối cùng.

Python3

The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
5
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
7
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
8
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
0
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
2
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
4
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6____49
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
8
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
0
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
1
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
2
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
3
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
4
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
5

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
4

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
0
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
1
List after removing elements: [1, 7, 6]
8 ________ 63 & nbsp;
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
4lst[:-n]1

Output:

The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]

Đầu ra

Sử dụng cắt danh sách tiêu cực để loại bỏ các yếu tố k cuối cùng của danh sách

Python3

The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
5
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
7
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
8
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9__12222222

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
0
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
1
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
2
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
3
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
4
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
5

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
4

    lst[-n:n and None] = []
46
    lst[-n:n and None] = []
47

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
0
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
1
List after removing elements: [1, 7, 6]
8 ________ 63 & nbsp;
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
4lst[:-n]1

Output:

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]

Đầu rato remove last K elements of list

Sử dụng cắt danh sách tiêu cực để loại bỏ các yếu tố k cuối cùng của danh sách

Python3

The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
5
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
7
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
8
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
9__12222222

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
6
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
4

The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
2
    lst[-n:n and None] = []
73
List after removing elements: [1, 7, 6]
4
The original list is : [1, 4, 6, 3, 5, 8]
The list after removing last K elements : [1, 4, 6]
4
    lst[-n:n and None] = []
76

The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
0
The original list is : [1, 7, 6, 3, 5, 8]
The list after removing last K elements : [1, 7, 6]
1
    lst[-n:n and None] = []
79
    lst[-n:n and None] = []
80

Output:

List after removing elements: [1, 7, 6]