我的代码需要一些帮助。我想在使用它时搜索数组列表中的元素:
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
的示例?
答案 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