从列表中搜索元素列表

时间:2015-06-20 18:49:09

标签: python python-2.7

我的代码需要一些帮助。我想在使用它时搜索数组列表中的元素:

program_button = [elem.control for elem in self.program_buttons]
positions_X = list()
positions_Y = list()
for elem in program_button:
    positions_X.append(elem.getX())
    positions_Y.append(elem.getY())
posX = map(str, positions_X)
posY = map(str, positions_Y)

print posX

结果如下:

19:42:50 T:2264  NOTICE: ['25', '375', '723', '1073', '1771', '2120', '2469']

我想从列表中搜索元素723

您能否告诉我一个如何使用名为723的变量从列表中搜索元素posX的示例?

2 个答案:

答案 0 :(得分:2)

假设您想要在列表中获取元素723的索引,您可以使用:

posX.index('723')

如果项目恰好不在列表中,则可以使用以下方便的功能:

def search_item(L,item):
    try:
        return L.index(item)
    except ValueError:
        return -1

print(search_item(posX,'723'))联系,在您的情况下会返回2 如果找不到该元素,则该函数将返回-1。

答案 1 :(得分:1)

您可以在next函数中使用生成器表达式:

>>> next((i for i in posX if i == '723'),None)
'723'

这将返回您正在搜索的变量(如果存在)或None(如果不存在)。

如果你想检查这个值的存在,你可以使用in操作数:

if `723` in Posx:
    #do stuff

如果您想要返回索引,可以使用list.index方法和try-except语句来处理ValueError或在前面的脚本中使用enumerate

>>> next((i for i,j in enumerate(posX) if j == '723'),None)
2
相关问题