遍历一个列表S,找到所有值大于10的值,同时返回索引与值
import copy
a=[13,42,31,4,41,-13,-4,0,-44,-32,12,34,2,42,33,1,-32,42,-3,10,12]
#方法1,没有返回索引
for i in a:
if i>10:
print (i)
#方法2,不提倡
dic1={}
for i in range(0,len(a)):
if a[i]>10:
dic1[i]=a[i]
print (dic1)
#方法3,符合Python方法
dic2={}
for key,value in enumerate(a):
if value>10:
dic2[key]=value
print (dic2)
* 1 如果S是嵌套列表,将会报错,可以定义函数将嵌套列表转化只有基本元素的列表
list1 = []
def unpack(a):
global list1
for i in a:
if isinstance(i,(list,tuple)):
unpack(i)
else:
list1.append(i)
return list1
dic2={}
for key,value in enumerate(unpack(a)):
if value>10:
dic2[key]=value
print (dic2)