list comprehensions을 사용합니다. 이 당신의 Client
클래스입니다 가정 :
>>> [e for e in l if e.screenName == 'b']
[<__main__.Client instance at 0x2e52b0>]
:
>>> l = [Client('a'), Client('b'), Client('c')]
... 나는 주어진 이름 만 클라이언트를 포함하는 목록을 얻을 수 있습니다 : 나는 고객의 목록을 가지고있는 경우
>>> class Client:
... def __init__(self, screenName):
... self.screenName = screenName
이제 첫 번째 요소와 가정 요소 만 가져옵니다.
>>> [e for e in l if e.screenName == 'b'][0]
<__main__.Client instance at 0x2e52b0>
>>> c = [e for e in l if e.screenName == 'b'][0]
>>> c.screenName
'b'
이것은 매우 짧고 IMHO 우아하지만 목록 이해력이 모든 목록에서 반복되므로 효율성이 떨어질 수 있습니다. 이 오버 헤드를 피하기 위해 원하는 경우, 대괄호 대신 괄호를 사용하여 발전기 대신 새 목록을 얻을 수 있습니다 :
>>> g = (e for e in l if e.screenName == 'b')
>>> g
<generator object <genexpr> at 0x2e5440>
>>> g.next()
<__main__.Client instance at 0x2e52b0>
그러나, next()
방법은 한 번만 호출 할 수 있습니다.
HTH!
나는 당신이 client.screen == 검색 –