我有一个清单: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
我该怎么办?
答案 0 :(得分:3)
我想你想回来
lst[i][1]
而不是
lst[i][i]
列表中的元组长度只有2
,所以当i
索引为>
而不是1
时,它会抛出错误。
答案 1 :(得分:1)
您正在返回元组的索引i
,该索引仅包含索引0
和1
。改为返回索引1:
return lst[i][1]
或者,使用next()
和生成器表达式:
def func(number):
return next(t[1] for t in lst if t[0] == number)