Python 列表 - Return 索引
Python List - Return Index
对于下面的列表 - “A” - 我想要 return “A”中元素的索引......除非“A”中的元素等于 'SCR'.鉴于此列表/代码:
输入:
A=['126.00', '9.00', '1.50', '9.50', '9.50', 'SCR', '19.00', '12.00']
B=[(A.index(i)+1) for i in A if not i=='SCR']
print(B)
输出:
[1, 2, 3, 4, 4, 7, 8]
注意 4 次重复。
要求的输出是:
[1,2,3,4,5,7,8]
您可以在遍历列表时使用 enumerate()
获取索引:
A=['126.00', '9.00', '1.50', '9.50', '9.50', 'SCR', '19.00', '12.00']
B=[i for i, v in enumerate(A, 1) if v!='SCR']
# [1, 2, 3, 4, 5, 7, 8]
是的,它会重复,因为 python 从前面开始一个接一个地检查,一旦找到它就会停止。
要解决此问题,只需在找到该索引处的元素后将其删除。
你也可以只做一件事--
A=['126.00', '9.00', '1.50', '9.50', '9.50', 'SCR', '19.00', '12.00']
B=[(i+1) for i in A if not i=='SCR']
打印(B)
尝试:
b=[]
for i in range(len(A)):
if A[i] != "SCR":
b.append(i+1)
print (b)
说明:
- 如果我们只需要打印索引号,我们可以通过“for i in range(len(A))”来获取。在这里,它的值将是:0,1,2,3,4,5,6,7
- 使用 if A[i] != "SCR",我们正在检查该索引的值是否等于 SCR,如果不等于,则将该索引值添加到另一个数组 - B
当您使用 list.index()
时,它 returns 第一个匹配项 。因此,当 i='9.50' 时,您将获得它第一次出现的索引。
为避免这种情况,您可以这样做:
A=['126.00', '9.00', '1.50', '9.50', '9.50', 'SCR', '19.00', '12.00']
B=[i+1 for i in range(len(A)) if not A[i]=='SCR']
print(B)
>>[1, 2, 3, 4, 5, 7, 8]
对于下面的列表 - “A” - 我想要 return “A”中元素的索引......除非“A”中的元素等于 'SCR'.鉴于此列表/代码:
输入:
A=['126.00', '9.00', '1.50', '9.50', '9.50', 'SCR', '19.00', '12.00']
B=[(A.index(i)+1) for i in A if not i=='SCR']
print(B)
输出:
[1, 2, 3, 4, 4, 7, 8]
注意 4 次重复。
要求的输出是:
[1,2,3,4,5,7,8]
您可以在遍历列表时使用 enumerate()
获取索引:
A=['126.00', '9.00', '1.50', '9.50', '9.50', 'SCR', '19.00', '12.00']
B=[i for i, v in enumerate(A, 1) if v!='SCR']
# [1, 2, 3, 4, 5, 7, 8]
是的,它会重复,因为 python 从前面开始一个接一个地检查,一旦找到它就会停止。
要解决此问题,只需在找到该索引处的元素后将其删除。
你也可以只做一件事--
A=['126.00', '9.00', '1.50', '9.50', '9.50', 'SCR', '19.00', '12.00'] B=[(i+1) for i in A if not i=='SCR'] 打印(B)
尝试:
b=[]
for i in range(len(A)):
if A[i] != "SCR":
b.append(i+1)
print (b)
说明:
- 如果我们只需要打印索引号,我们可以通过“for i in range(len(A))”来获取。在这里,它的值将是:0,1,2,3,4,5,6,7
- 使用 if A[i] != "SCR",我们正在检查该索引的值是否等于 SCR,如果不等于,则将该索引值添加到另一个数组 - B
当您使用 list.index()
时,它 returns 第一个匹配项 。因此,当 i='9.50' 时,您将获得它第一次出现的索引。
为避免这种情况,您可以这样做:
A=['126.00', '9.00', '1.50', '9.50', '9.50', 'SCR', '19.00', '12.00']
B=[i+1 for i in range(len(A)) if not A[i]=='SCR']
print(B)
>>[1, 2, 3, 4, 5, 7, 8]