我需要创建一个范围,该范围跳过从5开始的每个第4个数字。例如,如果范围a是从1至20,那么将排除数字5,9,13,17。a = [1, 2, 3, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16, 18, 19, 20]我尝试的是创建一个常规范围,然后创建一个第二个范围,该范围包括我要跳过的数字,然后从第一个范围中删除第二个范围。a = list(range(1,21))b = list(range(5,21,4))for x in b: if x in a: a.remove(x)这是可行的,但范围不是很大。有更有效的方法吗?
3 回答

交互式爱情
TA贡献1712条经验 获得超3个赞
您可以使用以下列表理解:
>>> print ([v for i, v in enumerate(range(1,21)) if i == 0 or i % 4 != 0]) [1, 2, 3, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16, 18, 19, 20]
添加回答
举报
0/150
提交
取消