0
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を検索する方法は?

編集済み

2)NR0951113配列インデックスを取得したい場合はどうすればよいですか?

4

1 に答える 1

1

おそらく欲しいと思います:

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

実際にインデックスを取得したい場合nextは、次のビルトインを使用する必要があります。

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

これはStopIteration、DeviceID がどのオブジェクトにも見つからない場合に発生します。渡す iterable が空の場合に返されるStopIteration2 番目の値を渡すことで、これを防ぐことができます。next

index = next((i for i,x in enumerate(PageNumList) if x.DeviceID == 'NR085113'),None)
if index is not None:
    ...
于 2013-02-06T13:26:49.663 に答える