Hướng dẫn how to compare list elements in python - cách so sánh các phần tử danh sách trong python

Nói rằng tôi có một mảng/danh sách những thứ tôi muốn so sánh. Bằng ngôn ngữ tôi quen thuộc hơn, tôi sẽ làm một cái gì đó như

for (int i = 0, i < mylist.size(); i++)
    for (int j = i + 1, j < mylist.size(); j++)
        compare(mylist[i], mylist[j])

Điều này đảm bảo chúng tôi chỉ so sánh từng cặp một lần. Đối với một số bối cảnh, tôi đang thực hiện phát hiện va chạm trên một loạt các đối tượng có trong danh sách. Đối với mỗi vụ va chạm được phát hiện, một đối tượng 'va chạm' nhỏ mô tả vụ va chạm được gắn vào danh sách, mà một thói quen khác sau đó lặp lại thông qua việc giải quyết từng vụ va chạm (tùy thuộc vào bản chất của hai đối tượng va chạm). Rõ ràng, tôi chỉ muốn báo cáo từng vụ va chạm một lần.

Bây giờ, cách làm pythonic này là gì, vì Python ủng hộ sử dụng trình lặp hơn là lặp qua các chỉ số?

Tôi đã có mã (lỗi) sau:

for this in mylist:
    for that in mylist:
        compare(this, that)

Nhưng điều này rõ ràng sẽ tăng lên từng vụ va chạm hai lần, dẫn đến một số hành vi kỳ lạ khi cố gắng giải quyết chúng. Vậy giải pháp Pythonic ở đây là gì?


So sánh hai danh sách trong Excel.

Sử dụng Dist.Sort () và == Toán tử

Phương thức danh sách.Sort () sắp xếp hai danh sách và toán tử == so sánh hai mục danh sách theo mục có nghĩa là chúng có các mục dữ liệu bằng nhau ở vị trí bằng nhau. Điều này kiểm tra xem danh sách có chứa các giá trị mục dữ liệu bằng nhau nhưng nó không tính đến thứ tự của các phần tử trong danh sách. Điều này có nghĩa là danh sách [1,2,3] sẽ bằng với danh sách [2,1,3] theo phương pháp so sánh này.

Thí dụ

& nbsp; bản demo trực tiếp

def compareList(l1,l2):
   l1.sort()
   l2.sort()
   if(l1==l2):
      return "Equal"
   else:
      return "Non equal"
l1=[1,2,3]
l2=[2,1,3]
print("First comparison",compareList(l1,l2))
l3=[1,2,3]
l4=[1,2,4]
print("Second comparison",compareList(l3,l4))

Đầu ra

First comparison Equal
Second comparison Non equal

Sử dụng bộ sưu tập.Count ()

Phương pháp này kiểm tra sự bình đẳng của danh sách bằng cách so sánh tần số của từng phần tử trong danh sách đầu tiên với danh sách thứ hai. Phương pháp này cũng không tính đến thứ tự của các yếu tố của danh sách.

Thí dụ

& nbsp; bản demo trực tiếp

import collections
def compareList(l1,l2):
   if(collections.Counter(l1)==collections.Counter(l2)):
      return "Equal"
   else:
      return "Non equal"
l1=[1,2,3]
l2=[2,1,3]
print("First comparison",compareList(l1,l2))
l3=[1,2,3]
l4=[1,2,4]
print("Second comparison",compareList(l3,l4))

Đầu ra

First comparison Non equal
Second comparison Equal

Sử dụng Sum (), Zip () và Len ()

Phương pháp này trước tiên so sánh từng yếu tố của hai danh sách và lưu trữ các danh sách đó là tổng số 1, sau đó được so sánh với độ dài của danh sách khác. Đối với phương pháp này, trước tiên chúng ta phải kiểm tra xem độ dài của cả hai danh sách đều bằng nhau trước khi thực hiện tính toán này.

Phương pháp này cũng kiểm tra thứ tự của các yếu tố. Điều này có nghĩa là danh sách [1,2,3] không bằng danh sách [2,1,3].

Thí dụ

& nbsp; bản demo trực tiếp

def compareList(l1,l2):
   if(len(l1)==len(l2) and len(l1)==sum([1 for i,j in zip(l1,l2) if i==j])):
      return "Equal"
   else:
      return "Non equal"
l1=[1,2,3]
l2=[2,1,3]
print("First comparison",compareList(l1,l2))
l3=[1,2,3]
l4=[1,2,3]
print("Second comparison",compareList(l3,l4))

Đầu ra

First comparison Non equal
Second comparison Equal

Sử dụng Sum (), Zip () và Len ()

Phương pháp này trước tiên so sánh từng yếu tố của hai danh sách và lưu trữ các danh sách đó là tổng số 1, sau đó được so sánh với độ dài của danh sách khác. Đối với phương pháp này, trước tiên chúng ta phải kiểm tra xem độ dài của cả hai danh sách đều bằng nhau trước khi thực hiện tính toán này.

Phương pháp này cũng kiểm tra thứ tự của các yếu tố. Điều này có nghĩa là danh sách [1,2,3] không bằng danh sách [2,1,3].

Thí dụ

& nbsp; bản demo trực tiếp

def compareList(l1,l2):
   if(l1==l2):
      return "Equal"
   else:
      return "Non equal"
l1=[1,2,3]
l2=[2,1,3]
print("First comparison",compareList(l1,l2))
l3=[1,2,3]
l4=[1,2,3]
print("Second comparison",compareList(l3,l4))

Đầu ra

First comparison Non equal
Second comparison Equal

Sử dụng Sum (), Zip () và Len ()

Hướng dẫn how to compare list elements in python - cách so sánh các phần tử danh sách trong python

Phương pháp này trước tiên so sánh từng yếu tố của hai danh sách và lưu trữ các danh sách đó là tổng số 1, sau đó được so sánh với độ dài của danh sách khác. Đối với phương pháp này, trước tiên chúng ta phải kiểm tra xem độ dài của cả hai danh sách đều bằng nhau trước khi thực hiện tính toán này.

  • Phương pháp này cũng kiểm tra thứ tự của các yếu tố. Điều này có nghĩa là danh sách [1,2,3] không bằng danh sách [2,1,3].
  • Như trong ví dụ trên, đối với so sánh đầu tiên, các mục dữ liệu trong cả hai danh sách đều bằng nhau nhưng thứ tự của các yếu tố là khác nhau. Do đó, so sánh đầu tiên trả về không bằng nhau.
  • Sử dụng == Toán tử
  • Đây là một sửa đổi của phương pháp đầu tiên. Trong phương pháp này, các danh sách được so sánh mà không cần sắp xếp và do đó, phương thức này có tính đến thứ tự của các mục dữ liệu trong danh sách.
  • Đây là một số phương pháp để so sánh các danh sách trong Python, cả hai đều có tính đến thứ tự của các mục dữ liệu cũng như mà không tính đến thứ tự các mục dữ liệu.
  • Cập nhật vào ngày 10 tháng 10 năm 2021 14:02:43
  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để chúng ta so sánh hai danh sách trong Python?
  • Làm thế nào để so sánh hai danh sách cho sự bình đẳng trong C#?
  • Làm thế nào để chúng ta so sánh các yếu tố của hai danh sách trong Python?
  • Chia hai danh sách trong Python
  • Làm thế nào để so sánh hai danh sách và thêm sự khác biệt vào danh sách thứ ba trong C#?
  • Trong Python làm thế nào để tạo từ điển từ hai danh sách?
  • Thêm hai yếu tố danh sách Python
  • Làm thế nào để so sánh hai chuỗi bằng Regex trong Python?
  • Hợp nhất hai danh sách được sắp xếp trong Python

Làm thế nào để bạn so sánh các yếu tố danh sách duy nhất trong Python?

Có nhiều cách tiếp cận khác nhau ...
Sử dụng cho vòng lặp. Trong phương pháp này, chúng tôi lấy phần tử đầu tiên từ danh sách và sử dụng một vòng lặp truyền thống để tiếp tục so sánh từng phần tử với phần tử đầu tiên. ....
Sử dụng tất cả () phương thức tất cả () áp dụng so sánh cho từng phần tử trong danh sách. ....
Sử dụng đếm ().

Làm thế nào để bạn so sánh tất cả các yếu tố trong một danh sách?

Chúng ta có thể lặp qua một danh sách bằng cách sử dụng vòng lặp.Để so sánh tất cả các yếu tố với nhau, chúng tôi sẽ sử dụng một vòng lặp lồng nhau.Một vòng lặp lồng là một vòng lặp trong một vòng lặp khác.Vòng lặp bên ngoài sẽ lấy một phần tử và vòng lặp bên trong sẽ so sánh nó với mọi yếu tố khác.use a nested loop. A nested loop is a loop in another loop. The outer loop will take one element and the inner loop will compare it to every other element.

Làm thế nào để bạn so sánh hai giá trị danh sách?

So sánh hai danh sách trong Excel..
Phương pháp 1: So sánh hai danh sách bằng toán tử dấu hiệu bằng nhau ..
Phương pháp 2: Kết hợp dữ liệu bằng cách sử dụng kỹ thuật khác biệt hàng ..
Phương pháp 3: Kết hợp chênh lệch hàng bằng cách sử dụng nếu điều kiện ..
Phương pháp 4: Kết hợp dữ liệu ngay cả khi có sự khác biệt hàng ..
Phương pháp 5: Đánh dấu tất cả các dữ liệu phù hợp bằng cách sử dụng định dạng có điều kiện ..

Làm cách nào để so sánh hai danh sách và sự khác biệt trong Python?

Có thể tìm thấy sự khác biệt giữa hai danh sách (giả sử List1 và List2) bằng cách sử dụng hàm đơn giản sau.Bằng cách sử dụng hàm trên, sự khác biệt có thể được tìm thấy bằng cách sử dụng Diff (TEMP2, TEMP1) hoặc DIFT (TEMP1, TEMP2).Cả hai sẽ cho kết quả ['bốn', 'ba'].diff(temp2, temp1) or diff(temp1, temp2) . Both will give the result ['Four', 'Three'] .