Hướng dẫn last elements of list python - các phần tử cuối cùng của danh sách python

Trong Python, làm thế nào để bạn có được yếu tố cuối cùng của một danh sách?

Chỉ để có được yếu tố cuối cùng,

  • mà không sửa đổi danh sách, và
  • Giả sử bạn biết danh sách có yếu tố cuối cùng [nghĩa là nó không trống]

Chuyển

>>> *head, last = a_list
>>> last
'three'
0 cho ký hiệu đăng ký:

>>> a_list = ['zero', 'one', 'two', 'three']
>>> a_list[-1]
'three'

Giải trình

Chỉ mục và lát cắt có thể lấy các số nguyên âm làm đối số.

Tôi đã sửa đổi một ví dụ từ tài liệu để chỉ ra mục nào trong chuỗi mỗi tài liệu tham khảo chỉ mục, trong trường hợp này, trong chuỗi

>>> *head, last = a_list
>>> last
'three'
1,
>>> *head, last = a_list
>>> last
'three'
0 tham chiếu phần tử cuối cùng, ký tự,
>>> *head, last = a_list
>>> last
'three'
3:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'

Nhiệm vụ thông qua việc giải nén có thể giải quyết được

Phương pháp này có thể thành hiện thực một cách không cần thiết danh sách thứ hai cho các mục đích chỉ nhận được yếu tố cuối cùng, nhưng vì lợi ích của tính hoàn chỉnh [và vì nó hỗ trợ bất kỳ khả năng nào - không chỉ danh sách]:

>>> *head, last = a_list
>>> last
'three'

Tên biến, Head được liên kết với danh sách mới được tạo không cần thiết:

>>> head
['zero', 'one', 'two']

Nếu bạn có ý định không làm gì với danh sách đó, đây sẽ là nhiều apropos hơn:

*_, last = a_list

Hoặc, thực sự, nếu bạn biết đó là danh sách [hoặc ít nhất là chấp nhận ký hiệu đăng ký]:

last = a_list[-1]

Trong một chức năng

Một người bình luận nói:

Tôi ước Python có một chức năng cho First [] và Last [] như Lisp làm ... nó sẽ loại bỏ rất nhiều chức năng Lambda không cần thiết.

Đây sẽ khá đơn giản để xác định:

def last[a_list]:
    return a_list[-1]

def first[a_list]:
    return a_list[0]

Hoặc sử dụng

>>> *head, last = a_list
>>> last
'three'
4:

>>> import operator
>>> last = operator.itemgetter[-1]
>>> first = operator.itemgetter[0]

Trong cả hai trường hợp:

>>> last[a_list]
'three'
>>> first[a_list]
'zero'

Trường hợp đặc biệt

Nếu bạn đang làm một cái gì đó phức tạp hơn, bạn có thể thấy nó hoạt động nhiều hơn để có được yếu tố cuối cùng theo những cách hơi khác nhau.

Nếu bạn chưa quen với lập trình, bạn nên tránh phần này, bởi vì nó kết hợp các phần khác nhau về mặt ngữ nghĩa của thuật toán. Nếu bạn thay đổi thuật toán của mình ở một nơi, nó có thể có tác động ngoài ý muốn đến một dòng mã khác.

Tôi cố gắng cung cấp cảnh báo và điều kiện hoàn toàn nhất có thể, nhưng tôi có thể đã bỏ lỡ điều gì đó. Hãy bình luận nếu bạn nghĩ rằng tôi sẽ bỏ đi.

Cắt lát

Một lát của danh sách trả về một danh sách mới - vì vậy chúng tôi có thể cắt từ -1 đến cuối nếu chúng tôi sẽ muốn phần tử trong một danh sách mới:

>>> a_slice = a_list[-1:]
>>> a_slice
['three']

Điều này có mặt trái không thất bại nếu danh sách trống:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
0

Trong khi đó cố gắng truy cập bằng chỉ mục làm tăng một

>>> *head, last = a_list
>>> last
'three'
5 cần được xử lý:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
1

Nhưng một lần nữa, việc cắt cho mục đích này chỉ nên được thực hiện nếu bạn cần:

  • một danh sách mới được tạo
  • Và danh sách mới sẽ trống nếu danh sách trước trống.

>>> *head, last = a_list
>>> last
'three'
6 vòng lặp

Là một đặc điểm của Python, không có phạm vi bên trong trong vòng lặp

>>> *head, last = a_list
>>> last
'three'
6.

Nếu bạn đang thực hiện một lần lặp hoàn chỉnh trong danh sách, phần tử cuối cùng vẫn sẽ được tham chiếu bằng tên biến được gán trong vòng lặp:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
2

Đây không phải là ngữ nghĩa là điều cuối cùng trong danh sách. Đây là điều về mặt ngữ nghĩa là điều cuối cùng mà tên,

>>> *head, last = a_list
>>> last
'three'
8, bị ràng buộc.

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
3

Do đó, điều này chỉ nên được sử dụng để có được yếu tố cuối cùng nếu bạn

  • đã lặp lại, và
  • Bạn biết vòng lặp sẽ kết thúc [không bị hỏng hoặc thoát do lỗi], nếu không nó sẽ trỏ đến phần tử cuối cùng được tham chiếu bởi vòng lặp.

Nhận và loại bỏ nó

Chúng tôi cũng có thể biến đổi danh sách ban đầu của mình bằng cách xóa và trả về phần tử cuối cùng:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
4

Nhưng bây giờ danh sách ban đầu được sửa đổi.

[

>>> *head, last = a_list
>>> last
'three'
0 thực sự là đối số mặc định, vì vậy
>>> head
['zero', 'one', 'two']
0 có thể được sử dụng mà không cần đối số chỉ mục]:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
5

Chỉ làm điều này nếu

  • Bạn biết danh sách có các yếu tố trong đó hoặc được chuẩn bị để xử lý ngoại lệ nếu nó trống và
  • Bạn có ý định loại bỏ phần tử cuối cùng khỏi danh sách, coi nó như một ngăn xếp.

Đây là những trường hợp sử dụng hợp lệ, nhưng không phổ biến lắm.

Tiết kiệm phần còn lại của ngược lại sau:

Tôi không biết tại sao bạn làm điều đó, nhưng để hoàn thiện, vì

>>> head
['zero', 'one', 'two']
1 trả về một trình lặp [hỗ trợ giao thức iterator], bạn có thể chuyển kết quả của nó sang
>>> head
['zero', 'one', 'two']
2:iterator [which supports the iterator protocol] you can pass its result to
>>> head
['zero', 'one', 'two']
2:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
6

Vì vậy, nó giống như làm ngược lại điều này:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
7

Nhưng tôi không thể nghĩ ra một lý do chính đáng để làm điều này, trừ khi bạn cần phần còn lại của trình lặp ngược sau đó, điều này có thể trông giống như thế này hơn:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
8

và bây giờ:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
   0   1   2   3   4   5 
  -6  -5  -4  -3  -2  -1

>>> p = 'Python'
>>> p[-1]
'n'
9

Làm cách nào để có được 10 yếu tố cuối cùng của một danh sách trong Python?

Phương thức số 2: Sử dụng islice [] + Reversed [] Các hàm sẵn có cũng có thể được sử dụng để thực hiện nhiệm vụ cụ thể này. Hàm Islice có thể được sử dụng để có được danh sách cắt lát và hàm đảo ngược được sử dụng để có được các yếu tố từ phía sau.Using islice[] + reversed[] The inbuilt functions can also be used to perform this particular task. The islice function can be used to get the sliced list and reversed function is used to get the elements from rear end.

Làm cách nào để có được 3 yếu tố cuối cùng của một danh sách trong Python?

Nhận phần tử cuối cùng của danh sách bằng cách sử dụng độ dài của danh sách - 1 1 làm chỉ mục và in phần tử cuối cùng của danh sách.Nhận phần tử cuối cùng của danh sách bằng cách sử dụng - 1 [lập chỉ mục âm] làm chỉ mục và in phần tử cuối cùng của danh sách.

Làm thế nào để bạn tìm thấy yếu tố cuối cùng trong một danh sách?

Để có được phần tử cuối cùng của danh sách trong Python, hãy sử dụng cú pháp [-1].Danh sách [-N] Cú pháp có phần tử từ thứ n đến cuối cùng.Vì vậy, liệt kê [-1] có phần tử cuối cùng và danh sách [-2] có phần thứ hai để cuối cùng.Danh sách [-1] là cách thích hợp nhất, ngắn nhất và pythonic để có được yếu tố cuối cùng.use the list[-1] syntax. The list[-n] syntax gets the nth-to-last element. So list[-1] gets the last element, and list[-2] gets the second to last. The list[-1] is the most preferable, shortest, and Pythonic way to get the last element.

Làm thế nào để bạn in 3 yếu tố cuối cùng của một danh sách theo thứ tự ngược lại Python?

Sử dụng Reversed [], chúng tôi có thể đảo ngược danh sách và đối tượng list_reverseiterator được tạo, từ đó chúng tôi có thể tạo một danh sách bằng cách sử dụng kiểu đúc loại danh sách [].Hoặc, chúng tôi cũng có thể sử dụng danh sách.Hàm đảo ngược [] để đảo ngược danh sách tại chỗ.

Bài Viết Liên Quan

Chủ Đề