In both cases, use list comprehension
to flatten the list of lists in which you search, thus converting it into an ordinary list (in which you use in
to search for name
):
name = 'Name 3'
list_1 = [
['Name 1', 'Name 2', 'Name 3']
]
if name in [item for sublist in list_1 for item in sublist]:
print('Name is in the list')
list_1 = [
['Name 1'],
['Name 2'],
['Name 3']
]
if name in [item for sublist in list_1 for item in sublist]:
print('Name is in the list')
Note that as MisterMiyagi mentioned in the comment, you can also use set comprehension:
if name in {item for sublist in list_1 for item in sublist}:
print('Name is in the list')
Or you can use generator expression:
if name in (item for sublist in list_1 for item in sublist):
print('Name is in the list')
These are possibly faster and/or more memory-efficient than list comprehension under some circumstances, such as large lists, or lists with many duplicates.
SEE ALSO:
Generator expressions vs. list comprehensions