Python 从列表中每隔三个元素获取一次

Python 从列表中每隔三个元素获取一次,python,list,Python,List,例如,如果我有如下列表 lst = [1, 10, 100, 2, 20, 200, 3, 30, 300]; 我怎样才能找回[1,2,3]?基本上是从第一个数字开始,每三个数字开始 for item in lst: if item in [1,2,3]: new_lst.append(item) 或使用列表理解缩短时间: new_lst=[item for item in lst if item in [1,2,3]] [x for x in lst if x &

例如,如果我有如下列表

lst = [1, 10, 100, 2, 20, 200, 3, 30, 300];
我怎样才能找回
[1,2,3]
?基本上是从第一个数字开始,每三个数字开始

for item in lst:
    if item in [1,2,3]:
        new_lst.append(item)
或使用列表理解缩短时间:

new_lst=[item for item in lst if item in [1,2,3]]
[x for x in lst if x < 10 and x >= 0]
或使用列表理解缩短时间:

new_lst=[item for item in lst if item in [1,2,3]]
[x for x in lst if x < 10 and x >= 0]

使用切片表示法的步骤参数

>>> lst[::3]
[1, 2, 3]
更新


请看这篇文章:,它将进一步详细解释。

使用切片表示法的step参数

>>> lst[::3]
[1, 2, 3]
更新


请看这篇文章:,它将进一步详细解释。

简单列表理解:

new_lst=[item for item in lst if item in [1,2,3]]
[x for x in lst if x < 10 and x >= 0]
[x表示lst中的x,如果x<10且x>=0]

简单列表理解:

new_lst=[item for item in lst if item in [1,2,3]]
[x for x in lst if x < 10 and x >= 0]
[x表示lst中的x,如果x<10且x>=0]

如果不可用;如果您不能完全理解您的问题,可以使用内置的排序函数对其进行排序,然后获得前3个元素

s = sorted(lst)[:3]
如果你想要1、2、3或是列表中的任何东西

[x for x in lst if x in range(1,4)]

希望这对don有所帮助;如果您不能完全理解您的问题,可以使用内置的排序函数对其进行排序,然后获得前3个元素

s = sorted(lst)[:3]
lst = [1, 10, 100, 2, 20, 200, 3, 30, 300]

print [lst[i] for i in xrange(0, len(lst), 3)]
如果你想要1、2、3或是列表中的任何东西

[x for x in lst if x in range(1,4)]

希望这能有所帮助

是因为元素是个位数这是您唯一的条件?@AshwiniChaudhary-所有信息都是原始版本。关于“一位数字”的文本指的是可能与
1,2,3
匹配的正则表达式,但不是“每三个元素”的条件。@Lix我刚刚删除了
regex
标记,我不确定你指的是什么。所有的评论都是OP自己写的。@AshwiniChaudhary-我说的是你(现在被删除)的评论。OP的编辑没有使您的答案无效-它没有改变基本问题。元素是个位数这一事实是您唯一的条件吗?@AshwiniChaudhary-所有信息都是原始版本。关于“一位数字”的文本指的是可能与
1,2,3
匹配的正则表达式,但不是“每三个元素”的条件。@Lix我刚刚删除了
regex
标记,我不确定你指的是什么。所有的评论都是OP自己写的。@AshwiniChaudhary-我说的是你(现在被删除)的评论。OP的编辑没有使你的答案无效-它没有改变潜在的问题。你有一个我们不知道的通灵水晶球调试器吗?哈哈,我希望,我只是看了一下列表,他说1,2,3,并假设我是。嗯,你是唯一得到它的人:P+1你有一个我们不知道的通灵水晶球调试器吗?哈哈,我希望,我只是看了一下列表,他说1,2,3,我想是吧。嗯,你是唯一得到它的人:P+1这不是OP想要的。问题指出输出应该是从第一个元素开始(包括第一个元素)的每三个元素<代码>“从第一个数字开始,每隔三个数字”这不是OP要求的。问题指出输出应该是从第一个元素开始(包括第一个元素)的每三个元素<代码>“从第一个数字开始,每隔三个数字”
lst = [1, 10, 100, 2, 20, 200, 3, 30, 300]

print [lst[i] for i in xrange(0, len(lst), 3)]