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.
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ụ:
print(["Red", "Blue"] == ["Red", "Blue"]) |
Tương tự với phép so sánh 2 list có phần tử thuộc kiểu số:
numlist1 = [0,1,2,3] |
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.
print(["Red", "Blue"] == ["Red", "Blue"]) |
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:
print(["red", "blue", "green"] > ["red", "blue", "white"]) |
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:
print( "green" > "white") |
- 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:
numlist1 = [0,1,2,3] |
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:
print( 2 <= 5) |
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ụ:
numlist = [0,1,2,3] |
Do lúc này, phép so sánh 2 list python ở trên sẽ chuyển về phép so sánh giữa string và số ( so sánh 2 với ‘Bob’) nên lỗi TypeError sẽ bị trả về như sau:
Traceback (most recent call last): |
So sánh 2 list và lấy ra các phần tử giống 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ử giống nhau giữa hai list cả.
Để so sánh 2 list trong python và lấy các phần tử giống 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ử giống nhau giữa chúng thông qua phép tìm giao 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: Tìm giao hai tập hợp 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ử giống nhau giữa chúng như sau:
l1 = [0,1,2,3,'Bob'] |
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.
l1 = [0,1,2,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ụ:
l1 = [0,1,2,3,'Bob'] |
- 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:
l1 = [0,1,2,3,'Bob'] |
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:
l1 = [0,1,2,3,'Bob'] |
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:
l1 = [0,1,2,3,'Bob'] |
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.
l1 = [0,1,2,3,'Bob'] |
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ụ:
l1 = [0,1,2,3,'Bob'] |
- 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:
l1 = [0,1,2,3,'Bob'] |
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.
URL Link
HOME › python cơ bản - lập trình python cho người mới bắt đầu>>10. list trong python