enumerate的用法:

enumerate的用法:
for index,value in enumerate(list,start):
print(index,value)

for 后面的index表示索引值,value表示要打印元素的值。list表示要遍历的对象,start表示索引开始的数值。

其中list可以加切片list[x:y],表示只取list里某个区间的值,比如前10个 list[:10] (虽然右边取不到,但是列表从0开始计数)

enumerate()是python的内置函数
enumerate在字典上是枚举、列举的意思
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串、字典、集合),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
enumerate多用于在for循环中得到计数

>>> seq=range(5)
>>> enumerate(seq)
<enumerate object at 0x00000000030D5480>


>>> list1 = [('a', 'A'), ('b', 'B'), ('c', 'C')]
>>> for x,y in enumerate(list1,2):
	print(x,y)
	
2 ('a', 'A')
3 ('b', 'B')
4 ('c', 'C')




>>> for x,(y,z) in enumerate(list1[:2]):
	print(y,z)
	
a A
b B


>>> for x,(y,z) in enumerate(list1):
	print(y,z)

	
a A
b B
c C
>>> 


>>> for x,(y,z) in enumerate(list1):
	print(x,y,z)

	
0 a A
1 b B
2 c C

>>> for x,(y,z) in enumerate(list1,2):
	print(x,y,z)

	
2 a A
3 b B
4 c C
>>> 

比较难的用法:

>>> 
list = [
    [
        ['a'],
        ['b']
    ],
    [
        ['c'],
        ['d']
    ],
    [
        ['e'],
        ['f']
    ]
]
>>> 

# 两种方式遍历 遍历:从第一个找到最后一个
>>> for x in list:
    for y in x:
         for z in y:
             print(z)

             
a
b
c
d
e
f


#  这个是上一个的enumerate用法
>>> for x, [[y], [z]] in enumerate(list):
     print(y, z)

     
a b
c d
e f
>>>  for x, [[y], [z]] in enumerate(list):
     print(x,y, z)
     
SyntaxError: unexpected indent
>>> for x, [[y], [z]] in enumerate(list):
     print(x,y, z)

     
0 a b
1 c d
2 e f
>>> for x, y in enumerate(list):
     print(x,y)

     
0 [['a'], ['b']]
1 [['c'], ['d']]
2 [['e'], ['f']]
>>> 

小心机

>>> for i,j in enumerate({'a','b'}):
	print(i,j)

	
0 b
1 a
>>> for i,j in enumerate(['a','b']):
	print(i,j)

	
0 a
1 b
>>> 


补充
如果要统计文件的行数,可以这样写:

count = len(open(filepath, 'r').readlines())
1
这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。

可以利用enumerate():

count = 0
for index, line in enumerate(open(filepath,'r')): 
    count += 1

或者用
>>> count=0
>>> for line in open(r'C:\Users\Administrator\Desktop\20190506biji.txt','r'):
	count+=1
	print(count)

或者
>>> for index, line in enumerate(open(r'C:\Users\Administrator\Desktop\20190506biji.txt','r')):
	count+=1
	print(index, line)


其它练习:
>>> s=[(1,2,),(4,2),(8,4),(3,2)]
>>> for x in s :
	print(x)

	
(1, 2)
(4, 2)
(8, 4)
(3, 2)
>>> for x,y in s :
	print(x,y)

	
1 2
4 2
8 4
3 2

>>> for i ,x in enumerate(s):
	print(i,x)

	
0 (1, 2)
1 (4, 2)
2 (8, 4)
3 (3, 2)
>>> for i ,x in enumerate(s):
	print(x)

	
(1, 2)
(4, 2)
(8, 4)
(3, 2)
>>> 

参考:
https://jingyan.baidu.com/article/a3aad71a3fff5db1fb00968d.html
https://blog.csdn.net/churximi/article/details/51648388
https://blog.csdn.net/qq_39610888/article/details/80869566

猜你喜欢

转载自blog.csdn.net/hellenlee22/article/details/89915776
今日推荐