Python搜索数组列表中的字符串

时间:2013-02-06 13:23:43

标签: python c arrays struct

StructPageNum = namedtuple('FDResult', ['DeviceID', 'PageNum'])
PageNumList = []
Node = StructPageNum(DeviceID='NR0951113', PageNum=[1,2,3,4])
PageNumList.append(Node)
Node = StructPageNum(DeviceID='NR0951114', PageNum=[1,2,3,4])
PageNumList.append(Node)

print('NR0951113' in PageNumList[:].DeviceID)  

1)如何在PageNumList中搜索NR0951113?

EDITED

2)如果我想获得NR0951113数组索引?如何获得它?

1 个答案:

答案 0 :(得分:1)

我想你可能想要:

any(x.DeviceID == 'NR0851113' for x in PageNumList)

如果您确实想要获取索引,那么可能next是您应该使用的内置函数:

next(i for i,x in enumerate(PageNumList) if x.DeviceID == 'NR085113')

如果在任何对象上找不到DeviceID,则会引发StopIteration。您可以通过将第二个值传递给StopIteration来阻止next,如果您传入的可迭代项为空,则返回index = next((i for i,x in enumerate(PageNumList) if x.DeviceID == 'NR085113'),None) if index is not None: ...

{{1}}