Làm cách nào để xóa mọi phần tử khác khỏi danh sách trong python?

Lấy mọi phần tử khác từ danh sách Python có vẻ dễ thực hiện nhưng nó thực sự yêu cầu một số kiến ​​thức cơ bản về Python

Để lấy mọi phần tử khác trong danh sách Python, bạn có thể sử dụng toán tử lát cắt và sử dụng thực tế là toán tử này cho phép cung cấp đối số bước [với cú pháp mở rộng của nó]. Một cách tiếp cận khác là sử dụng khái niệm toán học về phần dư và áp dụng nó để liệt kê các chỉ số

Hãy sáng tạo và nghĩ ra nhiều cách để giải quyết vấn đề này

Mục lục

Làm cách nào để hiển thị mọi phần tử khác trong danh sách Python?

Đầu tiên, hãy tạo một danh sách các chuỗi…

>>> countries = ['Italy', 'United Kingdom', 'Germany', 'United States', 'France']
>>> print[countries[::2]]
['Italy', 'Germany', 'France']  

Thật tuyệt, toán tử lát cắt trả về mọi phần tử khác bắt đầu từ phần tử đầu tiên

Toán tử lát cắt tuân theo cú pháp bên dưới [đây thực sự được gọi là cú pháp lát cắt mở rộng]

string[start:end:step]

Khi bắt đầu và kết thúc không được chỉ định, toàn bộ danh sách được tính đến

Giá trị bước cho phép bỏ qua một số mục trong danh sách, trong ví dụ của chúng tôi, chúng tôi đã chuyển 2 làm giá trị của bước. Đó là lý do tại sao đầu ra in mọi chuỗi khác trong danh sách

Nếu chúng ta muốn bắt đầu từ phần tử thứ hai trong danh sách, cú pháp sẽ như sau

>>> print[countries[1::2]]
['United Kingdom', 'United States'] 

Lần này chúng tôi đã bắt đầu bằng chỉ mục 1, hãy nhớ rằng chỉ mục cho danh sách bắt đầu từ số không

Cách in mọi phần tử thứ hai của danh sách bằng hàm phạm vi

Bạn có thể sử dụng vòng lặp for và hàm range[] để in mọi phần tử thứ hai của danh sách

Đầu tiên, hãy xem hàm phạm vi trả về cái gì bằng cách truyền đầu ra của nó vào một danh sách

>>> list[range[0,5]]
[0, 1, 2, 3, 4] 

Vì vậy, các giá trị được trả về bao gồm đối số đầu tiên được truyền cho hàm phạm vi và không bao gồm đối số thứ hai

Hàm phạm vi cũng chấp nhận đối số thứ ba, bước. Điều này tương tự như những gì chúng ta đã thấy với toán tử lát cắt

>>> list[range[0,5,2]]
[0, 2, 4] 

Để trả về mọi phần tử thứ hai, chúng ta phải thay đổi giá trị bắt đầu thành 1

>>> list[range[1,5,2]]
[1, 3] 

Bây giờ, hãy tạo một hàm sử dụng vòng lặp for và hàm phạm vi để tạo chỉ mục danh sách

Đối số đầu tiên [bắt đầu] bằng 1 và đối số thứ hai [kết thúc] bằng độ dài của danh sách

def every_second_element[values]:
    second_values = []

    for index in range[1, len[values], 2]:
        second_values.append[values[index]]

    return second_values 

Chúng tôi sử dụng phương thức nối thêm danh sách để tạo một danh sách mới chỉ chứa mỗi giá trị thứ hai, sau đó chúng tôi trả về danh sách mới ở cuối hàm

Sau đó, bạn có thể gọi hàm every_second_element

countries = ['Italy', 'United Kingdom', 'Germany', 'United States', 'France']
print[every_second_element[countries]]

[output]
['United Kingdom', 'United States'] 

Cách lấy mọi phần tử khác của danh sách bằng cách hiểu danh sách

Khả năng hiểu danh sách là một cấu trúc Python cung cấp giải pháp thay thế cho vòng lặp for

Hãy viết hàm chúng ta đã tạo trong phần trước nhưng lần này sử dụng cách hiểu danh sách

Chúng ta vẫn sẽ sử dụng hàm range[]

________số 8

Khi bạn lần đầu tiên nhìn thấy cách hiểu danh sách, nó có vẻ phức tạp, nhưng nó thực sự đơn giản khi bạn đã quen với nó

Và lợi thế lớn là nó đã thay thế một chức năng gồm nhiều dòng bằng một dòng mã

Tuyệt vời

Sử dụng Hàm liệt kê để lấy mọi phần tử danh sách khác trong Python

Một cách khác để lấy mọi phần tử khác từ danh sách là sử dụng hàm liệt kê Python

Hàm liệt kê trả về một đối tượng liệt kê

>>> print[enumerate[countries]]
 

Chúng ta có thể làm gì với đối tượng này?

Bạn có thể sử dụng một đối tượng liệt kê để in chỉ mục và giá trị cho từng phần tử trong danh sách

string[start:end:step]
0

Điều đó rất tiện lợi vì bạn không phải tự xử lý chỉ mục để tránh các lỗi tiềm ẩn khi làm việc với chỉ mục

Sử dụng khả năng hiểu danh sách và hàm liệt kê để in mọi phần tử thứ hai của danh sách

string[start:end:step]
1

Nếu bạn nhìn vào phần cuối của phần hiểu danh sách, bạn có thể thấy rằng chúng tôi cũng đã sử dụng phần còn lại [toán tử modulo Python] để chỉ in các phần tử có chỉ số lẻ

Trích xuất mọi phần tử khác từ danh sách Python bằng Lambda

Để trích xuất mọi phần tử khác từ danh sách, chúng ta cũng có thể sử dụng hàm lambda Python

Khi được sử dụng cùng với filter[], hàm lambda cho phép lọc từng phần tử của danh sách

string[start:end:step]
2

Chúng ta có thể sử dụng hàm lambda để xác minh xem lời nhắc cho một chỉ mục nhất định có bằng 1 hay không

string[start:end:step]
3

Đây là giao diện của nó khi được áp dụng cho các chỉ mục trong danh sách của chúng tôi

string[start:end:step]
4

Hãy gọi hàm bộ lọc và truyền các đối số sau cho nó

  1. hàm lambda. nó xác minh phần còn lại cho một chỉ mục danh sách nhất định. Nếu hàm lambda trả về True thì chỉ mục được bao gồm trong đầu ra của hàm lọc
  2. Chỉ mục từ danh sách. bạn có thể truy xuất các chỉ mục đó bằng cách sử dụng các hàm range[] và len[]
string[start:end:step]
5

Bây giờ, hãy sử dụng lệnh gọi hàm lọc bên trong phần hiểu danh sách…

string[start:end:step]
6

Kết quả giống như chúng ta đã thấy trong các phần trước nhưng việc triển khai phức tạp hơn rất nhiều

Tuy nhiên, đây là cơ hội để bạn học cách sử dụng một vài cấu trúc Python

  • hiểu danh sách
  • cho vòng lặp
  • Chức năng lọc
  • hàm lambda
  • toán tử modulo
  • phạm vi[] chức năng
  • hàm len[]

Cách lấy mọi phần tử thứ n từ danh sách Python

Chúng tôi sẽ hoàn thành hướng dẫn này bằng cách xem cách truy xuất mọi phần tử thứ n từ danh sách Python

Hãy tạo một hàm nhận ba đối số

  • danh sách ban đầu
  • bắt đầu chỉ mục cho danh sách đã lọc
  • n. nếu n là 2 thì chúng ta lấy mọi phần tử thứ hai, nếu n là 3 thì chúng ta lấy mọi phần tử thứ ba, v.v.
string[start:end:step]
7

Bây giờ, hãy sử dụng hàm đầu vào để lấy các giá trị của chỉ mục bắt đầu và n từ dòng lệnh khi thực thi chương trình Python

string[start:end:step]
8

Ghi chú. chúng tôi đã sử dụng hàm int[] để chuyển đổi các chuỗi được trả về bởi hàm input[] thành số nguyên

Và cuối cùng chúng ta có thể gọi hàm của mình

string[start:end:step]
9

Hai câu lệnh in sử dụng phương thức string format[] để in hai thông báo khi bạn thực hiện chương trình

Đây là ba lần chạy chương trình để kiểm tra nó trả về kết quả như mong đợi

>>> print[countries[1::2]]
['United Kingdom', 'United States'] 
0

Tất cả đều tốt, mã hoạt động tốt 🙂

Phần kết luận

Chúng tôi đã thấy rất nhiều cách khác nhau để lấy mọi phần tử khác trong danh sách Python

Bạn đã thấy cách sử dụng

  • toán tử lát cắt [cú pháp mở rộng]
  • vòng lặp for với hàm range[]
  • hiểu danh sách với hàm range[]
  • hiểu danh sách với chức năng liệt kê
  • hiểu danh sách với các chức năng lọc, lambda, phạm vi và len

Cách tiếp cận đơn giản nhất là cú pháp mở rộng cho toán tử lát

Bạn thích cái nào hơn?

Bài viết liên quan

dưa chua. Tuần tự hóa các đối tượng của bạn [Có ví dụ]

Kế thừa lớp Python. Hướng dẫn về mã tái sử dụng

Hàm NumPy Linspace trong Python. Từng bước một

Claudio Sabato

Tôi là Trưởng nhóm công nghệ, Kỹ sư phần mềm và Huấn luyện viên lập trình. Tôi muốn giúp bạn trong hành trình trở thành Nhà phát triển siêu hạng

Chủ Đề