>>> lis = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
>>> se = set(range(0, len(lis),9)) #use a list if the lis is not huge.
>>> [x for i,x in enumerate(lis) if i not in se]
[1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17]
#for your example even this will work:
>>> [x for i,x in enumerate(lis) if i%9 != 0]
[1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17]
3条答案
按热度按时间t40tm48m1#
你是说这个吗
扩展切片符号:
您可以为
start
传递自己的值(默认情况下使用0)更新:
oxcyiej72#
如果你没有重复的数字,这是任何数字集合的一般解决方案(不一定是连续的):
它使用
set.difference
s来获取set
,即原始列表和要删除的子列表之间的差异。vngu2lb83#
OP的评论:* 如何选择除了Q[::9]返回的值之外的所有其他值?*
我使用列表理解: