【问题标题】:How to remove elements from a list in a certain pattern? [duplicate]如何以某种模式从列表中删除元素? [复制]
【发布时间】:2020-01-28 13:51:34
【问题描述】:

一段时间以来,我一直在尝试研究这种特定模式,但我无法提出解决方案。例如,我有如下列表:n = ['M', 'M', 'B', 'B']

现在,我知道如何从具有奇数索引或偶数索引的列表中删除元素,例如 del n[1::2] 用于奇数索引,del n[0::2] 用于偶数索引。

但是,我希望以这样的模式删除:0, [1], 2, [3], [5], [8]..... 依此类推。方括号用于删除那些特定索引中的元素。

n 列表只是一个例子,我有更大的列表和更多的元素。到目前为止,我尝试过的所有事情都没有奏效,我将不胜感激。谢谢。

【问题讨论】:

  • 0, 1, [1], 2, [3], [5], [8] 背后的模式是什么?显然您在谈论斐波那契数列,但是什么将元素归类为“要删除的索引”?
  • 请指定要删除元素的模式是什么。
  • 这能回答你的问题吗? Deleting multiple elements from a list
  • 大概0, 1, [1], 2 ...是一个错字,应该是0, [1], 2 ...
  • @jarmod:我对此表示怀疑。 0,1,1,2,3,5,8 是斐波那契数列。但是要删除的索引似乎没有特定的顺序。没有遵循“任何假设”的算法,所以我们需要知道这些信息......编辑:问题已被编辑。现在这个列表更没有意义了。请赐教,马希尔

标签: python python-3.x algorithm


【解决方案1】:

你可以用这个:

orig_list = [1, 2, 3, 4, 5]
indices_to_retain = [0, 1, 4]

new_list = [content for entry, content in enumerate(orig_list) if entry in indices_to_retain]
# [1, 2, 5]

【讨论】:

    猜你喜欢
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多