【发布时间】:2017-10-08 09:58:06
【问题描述】:
假设我有一个列表 K 和一个列表 B。如果 K 中的条目满足我的条件 x,我想要列表 B 中该条目的索引。问题是因为第一个列表中有重复的条目,使用 k.index 只会给我该列表中第一次出现的索引。这是我所拥有的:
for i in k:
if i = x:
b.append(k.index(i))
【问题讨论】:
假设我有一个列表 K 和一个列表 B。如果 K 中的条目满足我的条件 x,我想要列表 B 中该条目的索引。问题是因为第一个列表中有重复的条目,使用 k.index 只会给我该列表中第一次出现的索引。这是我所拥有的:
for i in k:
if i = x:
b.append(k.index(i))
【问题讨论】:
这是一个简单的解决方案:
for n, item in enumerate(k):
if item == x:
b.append(n)
内置的 enumerate 函数返回从 0 开始的迭代的索引值,就像列表索引一样
【讨论】:
这可以使用built-in enumerate function 而不是list.index 来完成:
返回一个枚举对象。 iterable 必须是序列、迭代器或其他支持迭代的对象。 enumerate() 返回的迭代器的
__next__()方法返回一个元组,其中包含一个计数(来自默认为0 的start)和通过迭代iterable 获得的值。
for idx, i in enumerate(k):
if i == x:
b.append(idx)
【讨论】: