1

I have two lists, one containing lists of album, file pairs and the other containing only info about one photo - album (at position 0) and file (at position 1)

photos = [["Trip to Thailand", "IMG_001.jpg"], ["Latvia 2010", "IMG_001.jpg"]]
photo = ["Latvia 2010", "IMG_001.jpg"]

How to check if photo list is in photos list? Similarly like photo in photos for strings.

Position of album, file doesn't matter since there won't be any file equal to album.

Kara
  • 6,115
  • 16
  • 50
  • 57
user2781994
  • 469
  • 1
  • 5
  • 12

2 Answers2

9

Similarly like photo in photos for strings. Not just similarly, exactly like that. photo in photos works for lists inside lists too:

>>> photos = [["Trip to Thailand", "IMG_001.jpg"], ["Latvia 2010", "IMG_001.jpg"]]
>>> photo = ["Latvia 2010", "IMG_001.jpg"]
>>> photo in photos
True

Membership testing against a list simply iterates over the list and uses == equality testing with each element to see if there is a match. Your photo list tests as equal to the second element:

>>> photos[1] == photo
True

because all strings in both lists are equal.

Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
2
photos = [["Trip to Thailand", "IMG_001.jpg"], ["Latvia 2010", "IMG_001.jpg"]]
photo = ["Latvia 2010", "IMG_001.jpg"]
print (photo in photos)
True

There is no difference, you would check exactly as you would for a string.

Padraic Cunningham
  • 176,452
  • 29
  • 245
  • 321