Array và list trong Python

    HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>10. list trong python

So sánh 2 list trong python và lấy ra các phần tử giống nhau, khác nhau


22 tháng 6 ,2021

Hướng dẫn cách so sánh 2 list trong python. Bạn sẽ học được các cách so sánh 2 list trong python cũng như là cách lấy ra các phần tử giống nhau và khác nhau giữa 2 list trong python sau bài học này.

Chúng ta có 4 phương pháp để so sánh 2 list trong python như sau:

  • Toán tử == và != : Kiểm tra hai list có giống nhau trong Python
  • Toán tử = :So sánh lớn nhỏ giữa 2 list trong python
  • Hàm set[] python : So sánh 2 list và lấy ra các phần tử giống nhau trong python
  • Hàm set[] python : So sánh 2 list và lấy ra các phần tử khác nhau trong python

Chúng ta sẽ cùng tìm hiểu các phương pháp này ở dưới đây.

So sánh 2 list trong python

Để so sánh 2 list trong python, chúng ta sử dụng tới các toán tử so sánh như so sánh bằng hoặc so sánh lớn nhỏ trong python.

  • Xem thêm : Toán tử so sánh trong python và các phép so sánh chuỗi, số và list

Kiểm tra hai list có giống nhau trong Python | toán tử == và !=

Để kiểm tra hai list có giống nhau trong Python, chúng ta sử dụng toán tử so sánh bằng, và nếu như toàn bộ giá trị của các phần tử trong hai list đều giống nhau, giá trị True được trả về. Ví dụ:

Copy
print[["Red", "Blue"] == ["Red", "Blue"]]
#> True
print[["Red", "Blue"] != ["Red", "Blue"]]
#> False
print[["Red", "Blue"] == ["Red", "Blue", "White"]]
#> False
print[["Red", "Blue"] != ["Red", "Blue", "White"]]
#> True

Tương tự với phép so sánh 2 list có phần tử thuộc kiểu số:

Copy
numlist1 = [0,1,2,3]
numlist2 = [0,1,2,3]
numlist3 = [4]

print[numlist1 == numlist2]
#>> True

print[numlist1 == numlist3]
#>> False

Lưu ý là khi so sánh 2 list trong python và kiểm tra xem chúng có giống nhau hay không, chúng ta cần chú ý tới cả thứ tự của các phần tử trong hai list. Nếu như giá trị các phần tử trong hai list là giống nhưng thứ tự của phần tử trong hai list là khác nhau, hai list này sẽ được coi là khác nhau.

Copy
print[["Red", "Blue"] == ["Red", "Blue"]]
#> True

print[["Red", "Blue"] == ["Blue", "Red"]]
#> False

So sánh lớn nhỏ giữa 2 list trong python | toán tử =

Khi sử dụng phép so sánh lớn nhỏ để so sánh 2 list trong Python, phần tử đầu tiên có giá trị khác nhau trong 2 list sẽ được dùng để so sánh.

Khi đó tùy thuộc vào phần tử trong 2 list thuộc kiểu dữ liệu nào phép so sánh 2 list trong python sẽ chuyển thành phép so sánh 2 chuỗi trong python hoặc là phép so sánh 2 số trong python v.v..

Ví dụ chúng ta so sánh lớn nhỏ giữa 2 list có phần tử thuộc kiểu chuỗi string như sau:

Copy
print[["red", "blue", "green"] > ["red", "blue", "white"]]
#> False

Phép so sánh 2 list ở trên thực chất đã chuyển về phép so sánh 2 chuỗi python bằng cách so sánh các điểm mã unicode [unicode code point] của hai chuỗi như sau:

Copy
print[ "green" > "white"]
#>> False
  • Xem thêm : phép so sánh 2 chuỗi python

Tương tự khi chúng ta so sánh lớn nhỏ giữa 2 list có phần tử thuộc kiểu số trong python:

Copy
numlist1 = [0,1,2,3]
numlist2 = [0,1,5,3]

print[numlist1 > True

Phép so sánh 2 list ở trên thực chất đã chuyển về phép so sánh 2 số python như sau:

Copy
print[ 2 > True

Lưu ý là nếu phần tử đầu tiên có giá trị khác nhau trong 2 list thuộc các kiểu dữ liệu khác nhau, thì cũng có khả năng chúng ta không thể tiến hành so sánh chúng được.
Ví dụ:

Copy
numlist = [0,1,2,3]
mixlist = [0,1,'Bob',3]
print[numlist1 {0, 1, 3}

print[ set[l1] & set[l3] ]
#>> {0, 1, 3, 'Bob'}

print[type[set[l1] & set[l3]]]
#>>

Sau khi thu về set kết quả chứa các phần tử giống nhau giữa 2 list đã cho, chúng ta có thể dùng vòng lặp for để lấy ra các phần tử trong set kết quả. Lưu ý là do trong set không tồn tại index nên thứ tự lấy các phần tử và in ra màn hình có thể khác nhau trong các lần thực thi.

Copy
l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',3]

common_s = set [l1] & set[l2]
for i in common_s:
print[i]
#>> 0
#>> 1
#>> 3
#>> Bob

Chúng ta cũng có thể tìm số phần tử trùng nhau giữa 2 list python bằng cách sử dụng hàm len[] để đếm số phần tử trong set kết quả thu về. Ví dụ:

Copy
l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',3]
commmon_count = len[ set[l1] & set[l2] ]
print[commmon_count]
#>> 4
  • Xem thêm Đếm số phần tử trong set python

Bạn cũng có thể chuyển set kết quả về kiểu list và thu về một list mới chứa các phần tử giống nhau trong 2 list ban đầu bằng cách sử dụng thêm hàm set[] với hàm list[] trong python như ví dụ sau:

Copy
l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',3]

common_l = list[ set [l1] & set[l2] ]

print[common_l[2]]
#>> Bob
  • Xem thêm : Hàm list[] và cách tạo list từ iterable trong python

Tương tự khi so sánh 2 list, bạn cũng có thể so sánh 3 list hay nhiều list với nhau và tìm ra các phần tử giống nhau trong python như sau:

Copy
l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
l3 = [0,1,'Bob',3]
l1_l2_l3 = set[l1] & set[l2] & set[l3]
print[l1_l2_l3]
#>> {0, 1, 3}

So sánh 2 list và lấy ra các phần tử khác nhau trong python | hàm set[] python

Trong python không có một hàm hay phương thức nào giúp chúng ta có thể so sánh trực tiếp và lấy ra các phần tử khác nhau giữa hai list cả.

Để so sánh 2 list trong python và lấy các phần tử khác nhau, chúng ta cần chuyển 2 list đã cho về kiểu set [tập hợp], sau đó mới tìm ra phần tử khác nhau giữa chúng thông qua phép tìm phần bù giữa hai tập hợp bằng toán tử ^ trong python.

  • Xem thêm: Hàm set[] trong python và cách tạo set từ iterable
  • Xem thêm : Phần bù trong python

Việc chuyển list về kiểu set còn có một tác dụng nữa là giúp chúng ta xóa các phần tử trùng nhau trong list python trước khi đem chúng đi so sánh.

  • Xem thêm : Xóa phần tử trùng nhau trong list python

Sau đây, chúng ta sẽ xem ví dụ cụ thể về so sánh 2 list trong python và lấy các phần tử khác nhau giữa chúng như sau:

Copy
l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
l3 = [0,1,'Bob',4]

print[ set[l1] ^ set[l2] ]
#>> {2, 5, 'Bob'}

print[ set[l1] ^ set[l3] ]
#>> {2, 3, 4}

print[type[set[l1] ^ set[l3]]]
#>>

Sau khi thu về set kết quả chứa các phần tử khác nhau giữa 2 list đã cho, chúng ta có thể dùng vòng lặp for để lấy ra các phần tử trong set kết quả. Lưu ý là do trong set không tồn tại index nên thứ tự lấy các phần tử và in ra màn hình có thể khác nhau trong các lần thực thi.

Copy
l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',4]

common_s = set [l1] ^ set[l2]
for i in common_s:
print[i]
#>> 2
#>> 3
#>> 4

Chúng ta cũng có thể tìm số phần tử khác nhau giữa 2 list python bằng cách sử dụng hàm len[] để đếm số phần tử trong set kết quả thu về. Ví dụ:

Copy
l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
commmon_count = len[ set[l1] ^ set[l2] ]
print[commmon_count]
#>> 3
  • Xem thêm: Đếm số phần tử trong set python

Bạn cũng có thể chuyển set kết quả về kiểu list và thu về một list mới chứa các phần tử khác nhau trong 2 list ban đầu bằng cách sử dụng thêm hàm set[] với hàm list[] trong python như ví dụ sau:

Copy
l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',4]

common_l = list[ set [l1] ^ set[l2] ]

print[common_l[2]]
#>> 4
  • Xem thêm : Hàm list[] và cách tạo list từ iterable trong python

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách so sánh 2 list trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tạiCreativecommonsvà DMCA

Bài viết liên quan

  • Phương thức append trong python

  • Cắt [slice] list trong python

  • Chèn phần tử vào list python [insert, slice]

  • Chuyển string sang list trong Python

  • Đảo ngược list trong python [reverse, reversed]

  • Đếm số phần tử trong list Python

  • Phương thức extend trong python

  • Tạo list trong python

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>10. list trong python

Bài sau
Tìm max[] min[] và cách tính tổng các phần tử trong list Python
Bài tiếp
Đảo ngược chuỗi trong python
  • Bài viết mới nhất
  • report this ad

Video liên quan

Chủ Đề