Say nếu tôi có:làm thế nào để so sánh hai danh sách, trường hợp đối tượng trong python
list1 = [1,6]
list2 = [1]
tôi muốn làm một cái gì đó nếu danh sách các giá trị phù hợp!
Hãy so sánh nó và làm công cụ sau đó
Say nếu tôi có:làm thế nào để so sánh hai danh sách, trường hợp đối tượng trong python
list1 = [1,6]
list2 = [1]
tôi muốn làm một cái gì đó nếu danh sách các giá trị phù hợp!
Hãy so sánh nó và làm công cụ sau đó
Mmm, như thế này?
if list1 == list2: # compare lists for equality
doStuff() # if lists are equal, do stuff after that
Tất nhiên, bạn cần phải làm rõ ý nghĩa của "nếu giá trị danh sách khớp". Phần trên sẽ kiểm tra xem cả hai danh sách có cùng các phần tử hay không, ở cùng một vị trí - tức là, nếu chúng là bằng.
EDIT:
Câu hỏi đặt ra là không rõ ràng, chúng ta hãy xem một số giải thích càng tốt. Để kiểm tra xem tất cả các yếu tố trong list1
cũng trong list2
làm điều này:
if all(x in list2 for x in list1):
doStuff()
Hoặc để làm điều gì đó với mỗi phần tử trong list1
đó cũng thuộc về list2
, làm điều này:
for e in set(list1) & set(list2):
doStuff(e)
Sử dụng any()
:
>>> L1 = [1,6]
>>> L2 = [1]
>>> any(i in L1 for i in L2)
True
Khá nhiều, nó vòng qua từng mục trong L2
và nếu bất kỳ mục trong L2 là trong L1
, sau đó nó sẽ trở lại True
.
Nếu bạn muốn xem liệu từng hạng mục nằm trong danh sách khác, và in mà những người và những người thân mà không phải là:
>>> for i in L2:
... if i in L1:
... print i, "is in L1"
... else:
... doStuff(i)
Điều đó sẽ bỏ qua o rder của danh sách. –
@MarkusUnterwaditzer Thứ tự phải làm gì với nó? – TerryA
nó sẽ nói rằng '' [1,2,3] '' và '' [3,2,1] '' là bằng nhau. –
phương pháp đơn giản, mặc dù không nhất thiết phải hiệu quả nhất (sử dụng all()
thay vì any()
):
listsEqual = len(list1) == len(list2) and all(list1[i] == list2[i] for i in range(len(list1))
Không, trong Python, điều này sẽ kiểm tra xem cả hai danh sách có phải là _equal_: cùng một phần tử hay không, ở cùng một vị trí.Đó là trong Java, nơi này có nghĩa là một so sánh nhận dạng, trong Python nó là một so sánh bình đẳng –
Cảm ơn bạn đã làm rõ rằng :) upvoted. –
Actualu tôi muốn tìm xem mỗi phần tử trong danh sách 1 có trong danh sách 2 hay không nếu nó tồn tại sau đó làm điều gì đó với kết quả phù hợp – user2481309