python列表下表_Python3列表中获取相同元素出现位置的下标

破坏原有结构

# 定义列表

l = ["a", "b", "c", "a", "b", "c", "a"]

# 获取第一个"a"的下标

index_one = l.index("a")

# 删除第一个出现的"a"元素

l.pop(index_one)

# 再次获取第一个"a"的下标(相当于原列表的第二个"a"), 因为列表删除过一个元素, 所以加1

print(l.index("a") + 1)

for循环

# 定义列表

l = ["a", "b", "c", "a", "b", "c", "a"]

# 定义变量, 记录"a"出现次数

m = 0

# 定义变量, 记录循环到的列表位置, 相当于列表下标

n = 0

# 遍历列表

for i in l:

if i == "a":

m += 1

if m == 2: # 当"a"第二次出现时, 打印此时循环到的列表位置(下标)

print(n)

break

n += 1

index方法

# 定义列表

l = ["a", "b", "c", "a", "b", "c", "a"]

# 获取第一个"a"的下标

index_one = l.index("a")

# 从第一个"a"的下一个位置开始查找, 所以加1

print(l.index("a", index_one + 1))

enumerate函数枚举

# 定义列表

l = ["a", "b", "c", "a", "b", "c", "a"]

# 定义通用的获取某元素在列表中第n次出现的位置下标的函数

def get_index(l, x, n):

# 函数作用: 获取某个元素第n次出现在列表的下标

# 参数列表: 第一个参数为可迭代对象, 第二个参数为要查找的数, 第三个参数为要查找第几个出现的x

l_count = l.count(x)

result = None

if n <= l_count:

num = 0

for item in enumerate(l):

if item[1] == x:

num += 1

if num == n:

result = item[0]

break

else:

print("列表里总共有{}个{}".format(l_count, x))

return result

# 调用函数, 获取结果

result_l = get_index(l, "a", 2)

print(result_l)

列表推导式

# 定义列表

l = ["a", "b", "c", "a", "b", "c", "a"]

# 定义通用的获取某元素在列表中第n次出现的位置下标的函数

def get_index(l, x, n):

if n <= l.count(x):

all_index = [key for key, value in enumerate(l) if value == x]

return all_index[n-1]

else:

return None

# 调用函数, 获取结果

result_l = get_index(l, "a", 2)

print(result_l)

你可能感兴趣的:(python列表下表)