Đếm giao điểm của danh sách python

Danh sách là một kiểu dữ liệu trong python được sử dụng để lưu trữ nhiều mục. Danh sách rất linh hoạt vì chúng có thể lưu trữ các mục thuộc nhiều loại như số nguyên, chuỗi, dấu phẩy, v.v. Chúng có thể thay đổi và dấu phẩy phân tách các phần tử của chúng. Các phần tử bên trong danh sách có thể được truy cập với sự trợ giúp của việc lập chỉ mục. Trong bài viết này, chúng ta sẽ xem xét một số cách để thực hiện giao điểm danh sách python

nội dung

  • giao lộ là gì?
  • Thực hiện Giao lộ danh sách Python
  • 1. Sử dụng hàm Intersection()
  • 2. Áp dụng & giữa các bộ
  • 3. Sử dụng hiểu danh sách
  • 4. Sử dụng bộ lọc và lambda
  • 5. với numpy. hàm giao nhau1d()
  • 6. Tạo một chức năng do người dùng xác định
  • 7. Sử dụng bộ đếm bộ sưu tập
  • Liệt kê giao lộ trong danh sách đa chiều
  • Câu hỏi thường gặp về Giao lộ danh sách Python

giao lộ là gì?

Một giao điểm trong python có thể được thực hiện giữa hai hoặc nhiều danh sách hoặc bộ. Với phần giao nhau, chúng tôi nhận được các phần tử phổ biến có trong tất cả các danh sách, tôi. e. , nó trả về các phần tử tồn tại trong tất cả các danh sách

Thí dụ. Nếu chúng ta có hai danh sách – A và B chứa các phần tử sau

A = [0,1,10,5,8]

B = [7,1,3,11,0]

Sau đó, ở đây, chỉ có hai yếu tố phổ biến từ cả hai danh sách - 0 và 1. Do đó, giao điểm giữa hai danh sách sẽ là 0 và 1

Thực hiện Giao lộ danh sách Python

Bây giờ, chúng ta sẽ xem xét một số phương pháp giao danh sách trong python

  1. Sử dụng hàm giao nhau()
  2. Áp dụng & giữa các bộ
  3. Sử dụng hiểu danh sách
  4. Với bộ lọc và lambda
  5. sử dụng numpy. hàm giao nhau1d()
  6. Tạo một hàm do người dùng định nghĩa
  7. Sử dụng bộ đếm bộ sưu tập

1. Sử dụng hàm Intersection()

Giao điểm () là một hàm được xác định trước trong python được sử dụng để thực hiện giao giữa hai phần tử của một tập hợp. Nó trả về một tập hợp mới với các giá trị chung từ các tập hợp đầu vào. Đối với điều này, chúng ta phải chuyển đổi danh sách để thiết lập một cách rõ ràng

Hãy để chúng tôi lấy hai danh sách sau đây, A và B. Sau đó, chúng ta sẽ sử dụng set() để chuyển đổi A và B từ danh sách thành tập hợp. Sau khi chuyển đổi, set(A) sẽ gọi phương thức giao nhau(), trong đó set(B) sẽ được truyền làm đối số cho hàm. Sau đó, chúng ta sẽ sử dụng list() để chuyển đổi đầu ra tập hợp thu được thành danh sách. Danh sách giao nhau sẽ được lưu vào một biến có tên là ‘intersect’

A = [0,1,10,5,8]
B = [7,1,3,11,0]
intersect = list(set(A).intersection(set(B)))
print(intersect)

Đầu ra là

[0, 1]

2. Áp dụng & giữa các bộ

Một cách khác để thực hiện giao điểm danh sách python là chuyển đổi danh sách thành các bộ và sau đó áp dụng & giữa hai bộ. Điều này sẽ trả về các yếu tố phổ biến từ cả hai bộ. Chúng tôi có thể chuyển đổi rõ ràng cả hai bộ thành danh sách

Chúng ta hãy lấy ví dụ sau

Đầu tiên, chúng tôi đã áp dụng set() cho danh sách A và B. Sau đó, chúng tôi áp dụng và toán hạng & giữa hai bộ. Chúng tôi đã chuyển đổi rõ ràng nó thành loại danh sách bằng cách sử dụng list() và lưu nó vào một biến có tên là 'giao nhau' với đầu ra đã đặt.

A = [0,1,10,5,8]
B = [7,1,3,11,0]
intersect = list(set(A) & set(B))
print(intersect)

Khi in 'giao nhau', đầu ra là

[0, 1]

Phổ biến bây giờ

Hướng dẫn cơ bản về Python __all__

3. Sử dụng hiểu danh sách

Chúng tôi cũng có thể thực hiện giao danh sách bằng cách sử dụng hiểu danh sách. Khả năng hiểu danh sách cung cấp một cú pháp nhỏ gọn để tạo danh sách mới bằng cách sử dụng danh sách đã tồn tại

Ở đây, bên trong câu lệnh 'i for i in A if i in B', chúng tôi muốn nối thêm phần tử 'i' bên trong danh sách 'giao nhau' cho mọi phần tử trong 'A', nếu phần tử đó tồn tại trong 'B'. Phần tử sẽ chỉ được thêm vào danh sách nếu nó đáp ứng điều kiện đã cho. Nếu không, phần tử sẽ bị loại bỏ

A = [0,1,10,5,8]
B = [7,1,3,11,0]
intersect = [i for i in A if i in B]
print(intersect)

Danh sách đầu ra 'giao nhau' là

[0, 1]

4. Sử dụng bộ lọc và lambda

Bộ lọc trong python là một chức năng sẵn có được sử dụng để lọc ra các phần tử từ một danh sách nhất định. Chúng tôi chuyển từng phần tử từ danh sách sang hàm đã cho. Chỉ bao gồm những phần tử mà hàm trả về giá trị True

Lambda là một hàm ẩn danh chỉ chứa một biểu thức dòng đơn. Chúng tôi sẽ sử dụng cả bộ lọc và lambda để thực hiện giao nhau giữa hai danh sách. Đầu tiên, bên trong chúng ta có một hàm lambda nơi chúng ta trả về các phần tử chung. Và đối với tất cả các giá trị thực, bộ lọc sẽ chỉ bao gồm các giá trị đó trong danh sách 'giao nhau'

A = [0,1,10,5,8]
B = [7,1,3,11,0]
intersect = list(filter(lambda x:x in A,B))
print(intersect)

đầu ra là

________số 8

5. với numpy. hàm giao nhau1d()

Chúng ta cũng có thể sử dụng hàm giao nhau1d() có trong thư viện numpy để đạt được giao điểm của danh sách. Chúng ta sẽ chuyển hai danh sách làm đối số và nó sẽ trả về các giá trị duy nhất từ ​​cả hai danh sách theo cách sắp xếp . Sau đó, đầu ra sẽ được chuyển đổi rõ ràng thành danh sách bằng cách sử dụng hàm list().

ví dụ là

import numpy as np
A = [0,1,10,5,8]
B = [7,1,3,11,0]
intersect = list(np.intersect1d(A, B))
print(intersect)

đầu ra

[0, 1]

Đếm giao điểm của danh sách python

xu hướng

Mọi thứ về Python SortedDict

6. Tạo một chức năng do người dùng xác định

Chúng ta cũng có thể xây dựng một hàm do người dùng định nghĩa để thực hiện giao điểm. Nếu một phần tử tồn tại trong list1, chúng tôi sẽ thêm phần tử đó vào một danh sách mới ‘giao nhau’ nếu nó cũng có trong list2. Chúng tôi đạt được điều này bằng cách sử dụng vòng lặp for và câu lệnh if. Sau đó, chức năng sẽ in danh sách 'giao nhau'

Mã cho chức năng là

A = [0,1,10,5,8]
B = [7,1,3,11,0]
intersect = list(set(A).intersection(set(B)))
print(intersect)
1

đầu ra là

[0, 1]

7. Sử dụng bộ đếm bộ sưu tập

Bộ đếm là vùng chứa theo dõi tần suất của từng phần tử trong vùng chứa. Chúng ta sẽ phải nhập Counter từ bộ sưu tập. Mã để làm như vậy là.

A = [0,1,10,5,8]
B = [7,1,3,11,0]
intersect = list(set(A).intersection(set(B)))
print(intersect)
3

đầu ra là

[0, 1]

Liệt kê giao lộ trong danh sách đa chiều

Để thực hiện giao nhau cho danh sách các chiều nhiều hơn một, chúng ta có thể sử dụng hàm reduce(). Giảm () được sử dụng để áp dụng một chức năng cho một lần lặp và sau đó giảm nó thành một giá trị duy nhất

Để sử dụng giảm, chúng tôi sẽ nhập nó từ funcools. Ở đây, chúng tôi đã lấy một danh sách hai chiều A. Chúng ta sẽ sử dụng hàm giao nhau () bên trong giảm () và chuyển đổi từng danh sách con thành một tập hợp. Sau đó, chúng ta sẽ so sánh từng bộ này với bộ khác và chỉ giữ lại các giá trị duy nhất chung. Cuối cùng, reduce() sẽ chỉ giữ lại các giá trị chung. Chúng tôi sẽ chuyển đổi nó thành một danh sách bằng cách sử dụng list() và in danh sách

A = [0,1,10,5,8]
B = [7,1,3,11,0]
intersect = list(set(A).intersection(set(B)))
print(intersect)
5

đầu ra là

A = [0,1,10,5,8]
B = [7,1,3,11,0]
intersect = list(set(A).intersection(set(B)))
print(intersect)
6

Câu hỏi thường gặp về Giao lộ danh sách Python

Làm cách nào để tránh các giá trị trùng lặp trong giao điểm danh sách?

Để tránh các giá trị trùng lặp bên trong giao điểm danh sách, chúng ta có thể sử dụng các phương thức set. Bằng cách chuyển đổi danh sách thành một tập hợp và sau đó thực hiện giao điểm sẽ tránh được các giá trị trùng lặp được đưa vào giao lộ. Điều này là do tập hợp không lưu trữ bất kỳ giá trị trùng lặp nào.


Điều đó kết thúc giao lộ danh sách python. Nếu bạn có bất kỳ câu hỏi nào trong đầu, hãy để lại chúng bên dưới phần bình luận