我想在tuple of tuples
中搜索特定字符串并返回父元组的索引。我似乎经常遇到这种搜索的变体。
什么是最Python的方式来做这件事?
即:
derp = (('Cat','Pet'),('Dog','Pet'),('Spock','Vulcan'))
i = None
for index, item in enumerate(derp):
if item[0] == 'Spock':
i = index
break
>>>print i
2
我可以将其归纳为一个小的实用函数,它包含一个iterable、一个索引(在示例中我已经硬编码了0
)和一个搜索值。它确实起到了作用,但我有一个想法,那就是它可能只有一行代码;)
即:
def pluck(iterable, key, value):
for index, item in enumerate(iterable):
if item[key] == value:
return index
return None
或者你可以:
例如
它会给你“宠物”
其中一条线可能是而不是这是一种Python式的方式:)
你用的方法看起来不错。
编辑:
如果你想变得可爱:
next
接受生成器表达式,并在生成器用完后返回下一个值或第二个参数(在本例中为None
)。如果你经常搜索同一个元组,你可以构建一个dict
相关问题 更多 >
编程相关推荐