Trong phân tích văn bản và các lĩnh vực dữ liệu khác, thường cần tìm list cho trước có phải phần của list lớn hơn hay không.
Sử dụng all
Dùng vòng lặp for kiểm tra mỗi phần tử list nhỏ có trong list lớn không. all() đảm bảo mọi đánh giá đều true.
Ví dụ
Alist = ['Mon', 'Tue', 5, 'Sat', 9]
Asub_list = ['Tue', 5, 9] # List và sublist cho trước
print("Given list ", Alist)
print("Given sublist", Asub_list)
# Với all
if (all(x in Alist for x in Asub_list)):
print("Sublist is part of bigger list")
else:
print("Sublist is not part of bigger list")
# Kiểm tra lại
Asub_list = ['Wed', 5, 9]
print("New sublist", Asub_list)
if (all(x in Alist for x in Asub_list)):
print("Sublist is part of bigger list")
else:
print("Sublist is not part of bigger list")
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Given list ['Mon', 'Tue', 5, 'Sat', 9] Given sublist ['Tue', 5, 9] Sublist is part of bigger list New sublist ['Wed', 5, 9] Sublist is not part of bigger list
Sử dụng issubset
Chuyển list thành set, dùng issubset() kiểm tra list nhỏ có phải tập con list lớn không.
Ví dụ
Alist = ['Mon', 'Tue', 5, 'Sat', 9]
Asub_list = ['Tue', 5, 9] # List và sublist cho trước
print("Given list ", Alist)
print("Given sublist", Asub_list)
# Với issubset
if (set(Asub_list).issubset(set(Alist))):
print("Sublist is part of bigger list")
else:
print("Sublist is not part of bigger list")
# Kiểm tra lại
Asub_list = ['Wed', 5, 9]
print("New sublist", Asub_list)
if (set(Asub_list).issubset(set(Alist))):
print("Sublist is part of bigger list")
else:
print("Sublist is not part of bigger list")
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Given list ['Mon', 'Tue', 5, 'Sat', 9] Given sublist ['Tue', 5, 9] Sublist is part of bigger list New sublist ['Wed', 5, 9] Sublist is not part of bigger list
Sử dụng intersection
intersection() tìm phần tử chung 2 set. Chuyển list thành set, áp dụng intersection. Nếu kết quả intersection == sublist -> sublist là phần của list lớn.
Ví dụ
Alist = ['Mon', 'Tue', 5, 'Sat', 9]
Asub_list = ['Tue', 5, 9] # List và sublist cho trước
print("Given list ", Alist)
print("Given sublist", Asub_list)
# Với intersection
if (set(Alist).intersection(Asub_list) == set(Asub_list)):
print("Sublist is part of bigger list")
else:
print("Sublist is not part of bigger list")
# Kiểm tra lại
Asub_list = ['Wed', 5, 9]
print("New sublist", Asub_list)
if (set(Alist).intersection(Asub_list) == set(Asub_list)):
print("Sublist is part of bigger list")
else:
print("Sublist is not part of bigger list")
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Given list ['Mon', 'Tue', 5, 'Sat', 9] Given sublist ['Tue', 5, 9] Sublist is part of bigger list New sublist ['Wed', 5, 9] Sublist is not part of bigger list