在 Python 的元组列表中查找元组
Find tuples in a list of tuples in Python
要在元组列表中查找元组:
- 使用列表理解来遍历列表。
- 从列表理解中返回一个条件。
- 新列表将只包含满足条件的元组。
主程序
list_of_tuples = [('a', 1), ('b', 2), ('a', 3), ('c', 3)] # 👇️ check if the first element in a tuple is equal to specific value result_1 = [tup for tup in list_of_tuples if tup[0] == 'a'] print(result_1) # 👉️ [('a', 1), ('a', 3)] # 👇️ check if each tuple contains a value result_2 = [tup for tup in list_of_tuples if 'a' in tup] print(result_2) # 👉️ [('a', 1), ('a', 3)]
我们使用列表推导式在元组列表中查找元组。
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
在每次迭代中,我们检查索引处的元组元素0
是否具有值a
并返回结果。
主程序
list_of_tuples = [('a', 1), ('b', 2), ('a', 3), ('c', 3)] result_1 = [tup for tup in list_of_tuples if tup[0] == 'a'] print(result_1) # 👉️ [('a', 1), ('a', 3)]
新列表仅包含满足条件的元组。
要在列表中查找包含特定值的元组:
- 使用列表理解来遍历列表。
- 使用
in
运算符检查每个元组是否包含该值。 - 新列表将只包含包含指定值的元组。
主程序
list_of_tuples = [('a', 1), ('b', 2), ('a', 3), ('c', 3)] result_2 = [tup for tup in list_of_tuples if 'a' in tup] print(result_2) # 👉️ [('a', 1), ('a', 3)]
在每次迭代中,我们检查字符串a
是否包含在当前元组中并返回结果。
in 运算符
测试成员资格。
例如,如果是 的成员,则x in t
计算为 ,否则计算为。True
x
t
False
x not in t
返回 的否定x in t
。
或者,您可以使用该filter()
功能。
要在元组列表中查找元组:
- 使用该
filter()
函数过滤元组列表。 - 该
filter
函数返回一个包含结果的迭代器。 - 将
filter
对象传递给list()
类以将其转换为列表。
主程序
list_of_tuples = [('a', 1), ('b', 2), ('a', 3), ('c', 3)] result = list( filter( lambda tup: tup[0] == 'a', list_of_tuples ) ) # 👇️ [('a', 1), ('a', 3)] print(result)
filter函数接受一个函数和一个可迭代对象作为参数,并从可迭代对象的元素构造一个迭代器,函数返回一个真值。
该
filter
函数返回一个filter
对象,因此我们必须将该filter
对象传递给list()
类以将其转换为列表。该lambda
函数被列表中的每个元组调用,检查元组中的第一项是否等于字符串a
并返回结果。
新列表仅包含满足条件的元组。