功能搜索列表

时间:2014-01-18 23:48:51

标签: python string

我有一个清单:lst=[(1, 'AAT'), (2, 'C'), (33, 'GCC'), (4, 'T'), (11, 'ATC'), (12, 'A')] 我想创建一个函数,如果我给它一个数字,它会在列表lst中搜索,然后它会给我相应的字符串。 例如:func(2) gives C。  我试试这个:

def func(number):
   for i in range(len(lst)):
        if number==lst[i][0]:     """ lst[1][0]==2"""
            return lst[i][i]

它给出了:

IndexError: tuple index out of range

我该怎么办?

2 个答案:

答案 0 :(得分:3)

我想你想回来

lst[i][1]

而不是

lst[i][i]

列表中的元组长度只有2,所以当i索引为>而不是1时,它会抛出错误。

答案 1 :(得分:1)

您正在返回元组的索引i,该索引仅包含索引01。改为返回索引1:

return lst[i][1]

或者,使用next()和生成器表达式:

def func(number):
    return next(t[1] for t in lst if t[0] == number)