li =['a','b','24']for index, value inenumerate(li):print(index, val)# 或者更简单些:
li.index("24")# 返回li中的24元素的index, 2deftest(list, val):"""
这个方法主要作用是返回元素在list中的索引, 若不在list中, 则返回-1
"""for index, value inenumerate(list):if value == val:return index
return-1
关键字: enumerate()
# 递归的用法# 给出一个无序列表, 里面嵌套list, 再嵌套list, # 需求: 将所有list中的元素合并到一个list中
l =[10,20,[1,2,[4,6,7,[5,6,7,],6,7,0,5,],19,20,],21,23]
result =[]deftest(l):for x in l:ifisinstance(x,list):
test(x)# 递归用法, 调用自身.else:
result.append(x)
test(l=l)print(result)# [10, 20, 1, 2, 4, 6, 7, 5, 6, 7, 6, 7, 0, 5, 19, 20, 21, 23]
扁平化处理嵌套序列
from collections import Iterable
defflatten(items, ignore_types=(str,bytes)):"""
这个函数的通用性非常高
"""for x in items:ifisinstance(x, Iterable)andnotisinstance(x, ignore_types):yieldfrom flatten(x)else:yield x
items =[1,2,[11,22,[111,222,[1111,2222]]]]print(list(flatten(items)))