Python搜索嵌套序列
示例
像的一样list,在嵌套序列中进行搜索tuple需要一种方法,例如在键中搜索in的值,dict但需要自定义函数。
如果在序列中找到值,则是最外层序列的索引:
def outer_index(nested_sequence, value):
return next(index for index, inner in enumerate(nested_sequence)
for item in inner
if item == value)
alist_of_tuples = [(4, 5, 6), (3, 1, 'a'), (7, 0, 4.3)]
outer_index(alist_of_tuples, 'a') #1
outer_index(alist_of_tuples, 4.3) #2或外部和内部序列的索引:
def outer_inner_index(nested_sequence, value):
return next((oindex, iindex) for oindex, inner in enumerate(nested_sequence)
for iindex, item in enumerate(inner)
if item == value)
outer_inner_index(alist_of_tuples, 'a') #(1、2)
alist_of_tuples[1][2] #'一种'
outer_inner_index(alist_of_tuples, 7) #(2,0)
alist_of_tuples[2][0] #7通常(并非总是)使用带条件next的生成器表达式来查找搜索值的第一次出现是最有效的方法。