Cách so sánh các chỉ mục trong Python

Ngôn ngữ truy vấn có cấu trúc được hỗ trợ bởi RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) như Oracle, Mysql, PostgreSQL và SQL Server. Tất cả các đối tượng hỗ trợ hệ thống cơ sở dữ liệu quan hệ như cơ sở dữ liệu, bảng, lược đồ, chỉ mục, dạng xem, hàm, thủ tục, v.v.

Hệ thống RDBMS hoạt động tốt nhất khi lược đồ được ghi. Để làm cho các hệ thống này hoạt động tốt trên lược đồ khi đọc, chúng tôi có các chỉ mục giúp cải thiện hiệu suất đọc hoặc tìm kiếm dữ liệu

So sánh các chỉ mục của các bảng từ hai cơ sở dữ liệu khác nhau yêu cầu phải so sánh dữ liệu và cấu trúc lược đồ của chúng trước. Trong một hệ thống phân cấp của hệ thống quản lý cơ sở dữ liệu, chúng tôi có một lược đồ, cơ sở dữ liệu, bảng, cột sau đó lập chỉ mục

Danh sách trong Python có thể thay đổi và có thể lưu trữ một số phần tử hữu hạn. Chúng tôi không thể xác định xem một danh sách lớn hơn hay nhỏ hơn bất kỳ danh sách nào khác dựa trên các tiêu chí chung. Vì vậy, khi chúng ta nói về việc so sánh các danh sách, chúng ta có nghĩa là kiểm tra xem hai danh sách có cùng phần tử hay không

Cách so sánh danh sách trong Python

Trong bài viết này, một số cách được thảo luận để so sánh hai danh sách trong Python. Hai danh sách chỉ có thể bằng nhau nếu chúng có cùng độ dài, vì vậy trong bài viết này, tất cả các ví dụ đều giả định rằng các danh sách được so sánh có cùng độ dài

Sử dụng hàm sort() và toán tử ==

Chúng ta có thể sử dụng toán tử đẳng thức (______1_______) để so sánh hai danh sách và kiểm tra xem chúng có bằng nhau hay không. Nên sử dụng hàm sort() trước khi so sánh vì đôi khi các danh sách có thể chứa các phần tử giống nhau nhưng chúng có thể bị xáo trộn. Hàm sort() sẽ sắp xếp chúng. Ngoài ra, chức năng này sắp xếp danh sách gốc và không tạo danh sách mới

Xem mã dưới đây

1

2

3

4

5

6

7

8

9

10

 

a = [1,5,9]

b = [5,9,1]

c = [1,6,9]

a. sắp xếp()

b. sắp xếp()

c. sắp xếp()

in(a == b)

in(a == c)    

 

đầu ra

ĐÚNG VẬY
SAI

Trong ví dụ trên,

  • Chúng tôi đã tạo ba danh sách a, bc
  • Chúng tôi đã sắp xếp các danh sách và so sánh chúng
  • Danh sách ab bằng nhau và trả về ==0
  • Danh sách ac không bằng nhau nên chúng tôi nhận được ==3
  • Hàm sort() có thể được sử dụng với bất kỳ phương pháp nào được thảo luận bên dưới

Sử dụng các hàm ==5 và ==6

Chúng ta có thể thực hiện một hàm ==7 đơn giản để so sánh hai danh sách. Các chức năng như vậy được sử dụng để thực hiện logic một dòng đơn giản

Đối với điều này, chúng tôi sẽ sử dụng các hàm ==5 và ==6. Hàm ==5 có thể lặp lại và áp dụng một hàm cho mọi phần tử của đối tượng này. Hàm ==6 sẽ được áp dụng cho đối tượng bản đồ để so sánh hai phần tử

Cần sắp xếp danh sách trước khi sử dụng các chức năng này

Chúng tôi triển khai logic trên trong đoạn mã sau

1

2

3

4

5

6

7

8

9

10

11

 

nhập công cụ chức năng

a = [1,5,9]

b = [5,9,1]

a. sắp xếp()

b. sắp xếp()

if công cụ chức năng. giảm(lambda h, . k: h k, bản đồ . (lambda x, y: x == y, . , b), True):  

    in("Bằng")  

khác.   

    in("Không bình đẳng")      

 

đầu ra

Bình đẳng

Sử dụng hàm ==2 và toán tử ==

Hàm ==2 trả về một đối tượng tập hợp không có thứ tự và chứa các phần tử riêng biệt. Chúng ta có thể so sánh các tập hợp này bằng cách sử dụng toán tử ==

Không có yêu cầu sắp xếp các danh sách này, một tập hợp không có thứ tự

Ví dụ,

1

2

3

4

5

6

7

 

a = [1,5,9]

b = [5,9,1]

c = [1,6,9]

in(đặt(a) == set(b))

in(đặt(a) == set(c))    

 

đầu ra

ĐÚNG VẬY
SAI

Trong đoạn mã trên,

  • Đầu tiên chúng tôi tạo ba danh sách
  • Các danh sách này đã được chuyển đổi thành bộ bằng cách sử dụng hàm ==2
  • Các tập hợp này được so sánh bằng nhau bằng cách sử dụng toán tử ==

Sử dụng vòng lặp ==8

Chúng ta có thể sử dụng vòng lặp ==8 để lặp lại cả hai danh sách và so sánh từng phần tử riêng lẻ. Nếu ngay cả một cặp phần tử không khớp, chúng tôi sẽ thoát ra khỏi vòng lặp và biết rằng các danh sách không bằng nhau

Xem mã dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

 

a = [1,5,9]

b = [5,9,1]

a. sắp xếp()

b. sắp xếp()

f = 0

cho i trong phạm vi(len(a)):

    nếu a[i]! = b[i] . :

        f = 1

        nghỉ

if(f == 0):

    in("Bằng")

khác.

    in("Không bằng")    

 

đầu ra

Bình đẳng

Sử dụng hàm ==2 và toán tử sort()1

Chúng ta có thể chuyển đổi hai danh sách thành một tập hợp bằng cách sử dụng hàm ==2 và tính toán sự khác biệt của chúng. Sự khác biệt giữa hai tập hợp là tổng số phần tử có trong tập hợp đầu tiên và không có trong tập hợp thứ hai. Chúng ta có thể sử dụng sự khác biệt này để so sánh hai danh sách. Nếu hiệu là tập rỗng thì chúng bằng nhau, ngược lại thì không

Xem ví dụ sau

1

2

3

4

5

6

7

8

9

 

a = [1,5,9]

b = [5,9,1]

d = (đặt(a) - set(b))

if len(d)==0:

    in("Bằng")

khác.

    in("Không bằng")    

 

đầu ra

Bình đẳng

Sử dụng lớp sort()3 và toán tử ==

sort()5 là một lớp con từ mô-đun sort()6 lưu trữ các phần tử trong một đối tượng có thể băm với cấu trúc giống như từ điển. Chúng ta có thể lưu trữ hai danh sách trong các đối tượng như vậy và so sánh chúng bằng cách sử dụng toán tử ==

Không yêu cầu sắp xếp danh sách trước

Ví dụ,

1

2

3

4

5

6

 

từ bộ sưu tập nhập Bộ đếm

a = [1,5,9]

b = [5,9,1]

in(Bộ đếm(a)==Counter(b))    

 

đầu ra

ĐÚNG VẬY

Sử dụng các hàm sort()8, sort()9 và sort()0

Hàm sort()8 trả về một đối tượng kiểu zip bằng cách kết hợp các phần tử của hai lần lặp. Hàm sort()0 tính toán độ dài của lần lặp

Chúng ta có thể sử dụng các hàm này với hàm sort()9 để tính tổng số chỉ mục mà các phần tử khác nhau. Nếu tổng này bằng 0 thì hai danh sách bằng nhau, ngược lại chúng không bằng nhau. Điều cần thiết là sắp xếp các danh sách trước khi sử dụng các chức năng này

Chúng tôi triển khai logic này trong đoạn mã sau

1

2

3

4

5

6

7

8

9

10

11

12

 

a = [1,5,9]

b = [5,9,1]

a. sắp xếp()

b. sắp xếp()

d = tổng(x ! = y cho x, y in zip(a,b))

d += abs(len(a) - len(b))

if(d == 0):

    in("Bằng")

khác.

    in("Không bằng")    

 

đầu ra

Bình đẳng

Sử dụng hàm sort()4

Hàm sort()4 trả về 1,-1 và 0 dựa trên so sánh giữa hai số nguyên. Chúng ta có thể sử dụng nó với các danh sách và nếu kết quả là 0 thì hai danh sách bằng nhau

Chức năng này chỉ hoạt động trong Python 2

Ví dụ,

1

2

3

4

5

6

7

8

9

10

 

a = [1,5,9]

b = [5,9,1]

a. sắp xếp()

b. sắp xếp()

if(cmp(a,b) == 0):

    in "Bằng"

khác.

    in("Không bằng")    

 

đầu ra

Bình đẳng

đọc thêm

Sắp xếp Danh sách Danh sách trong Python

Đọc thêm →

Mở rộng danh sách chức năng trong Python

Đọc thêm →

Phần kết luận

Trong bài viết này, chúng ta đã thảo luận về các cách khác nhau để so sánh hai danh sách trong Python. Toán tử == được sử dụng trong nhiều phương pháp và chúng tôi đã khám phá ra một số cách sáng tạo để đạt được điều tương tự bằng cách sử dụng các phương thức tập hợp, sort()4 và sort()8

Bạn có thể so sánh các chỉ mục trong Python không?

chúng ta có thể thiết kế vòng lặp for để so sánh các giá trị ở các chỉ mục tương tự . Id các giá trị không khớp thì chúng tôi thêm chỉ mục vào danh sách kết quả. Vòng lặp for trước tiên tìm nạp giá trị trong chỉ mục đầu tiên, sau đó sử dụng điều kiện if để so sánh nó với các giá trị từ danh sách thứ hai.

Làm cách nào để so sánh hai chỉ mục danh sách trong Python?

Bạn có thể sử dụng hàm map() của Python cùng với các công cụ funcool. hàm reduce() để so sánh các mục dữ liệu của hai danh sách. Khi bạn sử dụng chúng kết hợp, hàm map() sẽ áp dụng hàm đã cho cho mọi phần tử và hàm reduce() đảm bảo rằng nó áp dụng hàm theo cách liên tiếp.