LINUX.ORG.RU

[python] фильтр листа

 


0

0

Как написать это короче и елегантней?
list=[.......]
filtered=[]
for element in list:
    if(element.data == somevalue):  filtered.append(element)



А это:

list=[.......]
temp=[]
for element in list:
    if(element.data == somevalue):  temp.append(element)
list=temp
del(temp)



anonymous

1)
listing = [....]
filtered = filter(lambda i: i.data == somevalue, listing)

2)
listing = [....]
listing = filter(lambda i: i.data == somevalue, listing) 

Ы?

sanwashere ★★
()
Ответ на: комментарий от Joe_Bishop

> list = [ item for item in list if item.data == somevalue ]

наверно, правильнее так :)

filtered = [ item for item in mylist if item.data == somevalue ]

Ну и переопределять встроенный тип list не надо, может привести к страшным глюкам.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

А ещё в большинстве случаев имеет смысл использовать не list, а generator comprehensions:

filtered = (item for item in mylist if item.data == somevalue)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.