python - 如何从 Python 中的列表中分离值?

标签 python list methods

我有几个列表正在尝试调查。我卡在了某个点:

D = [1, 1, 1, 2, 5, 1, 1, 1, 1, 1, 3, 2, 1, 1]

假设这是列表。我需要从列表 D 中分离出一个新列表。我们可以说我想过滤那些“1”;但我做不到。

如果我使用像这样的“索引”方法:

D = [1, 1, 1, 2, 5, 1, 1, 1, 1, 1, 3, 2, 1, 1]

E = []

for i in D:
    if not i == 1:
        E.append(D.index(i))

print(E)

输出是:[3, 4, 10, 3]。我需要的是 [3, 4, 10, 11]。因为 D[3] 和 D[11] 的值是相同的,所以 python不允许我得到第二个。我该如何解决这个问题?

非常感谢您的帮助。

谢谢。

最佳答案

您可以通过多种方式编写此程序。我将首先尝试以最少的更改来调整您的示例:

D = [1, 1, 1, 2, 5, 1, 1, 1, 1, 1, 3, 2, 1, 1]

E = []

for i in range(len(D)):
    if D[i] != 1:
        E.append(i)

print(E)

但是,还有一个更短/更简单的单行解决方案:

D = [1, 1, 1, 2, 5, 1, 1, 1, 1, 1, 3, 2, 1, 1]
E = [i for i in range(len(D)) if D[i]!=1]
print(E)

关于python - 如何从 Python 中的列表中分离值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58313011/

相关文章:

objective-c - 从 imp 调用 Objective-C 方法

Python Pandas 将初始列组融合为多个目标列

python - 如何获得路径的正确大写?

c# - 使用更新的数据库中的值重新创建列表

java - 调用方法错误

android - ImageView 在两次点击后更改图像

python - 如何查看 2 个日期产生的收入超过 1 个日期的总收入的实例有多少?

python - 埃拉托色尼筛法问题(Python 语法)

python - 返回多个变量 : list/tuple

java - 包含多个 "keys"的列表对象