2014-02-14 3 views
0

Мне нужно получить первый и единственный дочерний элемент узла, и ребенок, как гарантируется, будет там. Я мог бы написать что-то вроде этогоPython ElementTree найти первый элемент

def get_first(Node): 
    for x in Node: 
    return x 

Но я надеялся на что-то более элегантное. Кто-нибудь знает что-то?

+0

Ваш код довольно шикарный. (Однако 'Node' не соответствует ожидаемым соглашениям об именах.) –

ответ

1

Ну, я лично ничего не вижу в вашем коде. Он чист и будет работать для любого истребимого объекта.

Тем не менее, если вы должны сделать прочь с для цикла, то вы можете использовать next:

def get_first(Node): # Also, Node should be lowercase according to PEP 8 
    return next(Node) 

Однако, это будет работать только для итераторов. Если Node не итератор, то вы можете сделать это один с iter:

def get_first(Node): 
    return next(iter(Node)) 
1

вы пробовали по индексу?

def get_first(node): 
    return node[0] 
Смежные вопросы