我有几个列表正在尝试调查。我卡在了某个点:
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/