2011-06-21 66 views
11

而不是根据它的值处理项目,我需要根据项目的位置运行一个函数。这是一个基于列表内容的过滤示例。如何从列表中的某个项目中筛选出一个项目?

only_words = filter(str.isalpha, my_list) 

我想创建一个包含偶数位置只项列表的一个切片,那就是:

new_list = [] 
pos = 0 
for item in my_list: 
    if pos % 2 == 0: 
     new_list.append(item) 

这是太丑陋。更好的建议?

回答

20

您可以使用此:my_list[::2](奇数 - my_list[1::2]

+0

,使该奇数位置。你的意思是'my_list [:: 2]'。 –

+0

你能解释一下吗? '::'是一个特殊的操作符吗?从未见过这样的事情。 – naeg

+0

@lazyr谢谢,我总是混淆这些词。 :-( – DrTyrsa

6
[v for k, v in enumerate(mylist) if k % 2 == 0] 
+1

切片更好,但'enumerate()'需要更多的爱。 –

相关问题