python中的 enumerate() 函数的应用

enumerate() 函数的应用

enumerate = 枚举 = 一一列举

使用方式:

enumerate(sequence, [start=0])

输入是:一个可循环序列sequence
从指定的数值 start 开始计算下标

输出是:下标 和 该下标对应所在行的数据(可以是 列表,字典, 集合, 元组,等数据类型)

具体用法:

没有指定 start:

list1 = ['A','B','C','D','E']
for index, item in enumerate(list1):
    print(index, item)
0 A
1 B
2 C
3 D
4 E

指定 start :

list1 = ['A','B','C','D','E']
for index, item in enumerate(list1, start=10):
    print(index, item)
10 A
11 B
12 C
13 D
14 E

可以通过 json写入文件,读取文件,并通过 enumerate() 函数将文件的下标和数据读取出来。
具体展示如下:

import json
data =[
       {'name':'kingsan','age':'23'},
       {"name": "xiaoliu","age":"24"},
       {"name":"xiaowang","age":"22"}]


with open('data.json','w') as file:   # 写文件
	file.write(json.dumps(data))
    
with open('data.json', "r") as f:     # 读文件
    for idx, line in enumerate(f):
#         pass
        print(idx)
        print(line)

print(type(line))

0
[{"name": "kingsan", "age": "23"}, {"name": "xiaoliu", "age": "24"}, {"name": "xiaowang", "age": "22"}]
<class 'str'>

可以看出 line 是 str 类型的数据。
疑问?: 那么如何按照格式化进行输出呢, 即 怎么输出把上面的输出成字典格式的数据? = 如何将当下的字符串类型转换成字典?

使用 json.loads(变量名)

d = json.loads(line)     # line是 str 格式,将str格式的数据通过 json.loads() 加载进来, 输出为 字典类型
import json
data = {"name":"kingsan","age":"23"}
#        {"name": "xiaoliu","age":"24"},
#        {"name":"xiaowang","age":"22"}]


with open('data.json','w') as file:   # 写文件
	file.write(json.dumps(data))
    
with open('data.json', "r") as f:     # 读文件
    for idx, line in enumerate(f):
#         pass
        print(idx)
        print(line)

print(type(line))

d = json.loads(line)
print(d, type(d))
0
{"name": "kingsan", "age": "23"}
<class 'str'>
{'name': 'kingsan', 'age': '23'} <class 'dict'>

显然看出这里我们的 data 是最外层的变量是一个 字典类型的数据,所以才要使用json.dumps(数据,文件)

其中:

file.write(json.dumps(data))  =  json.dumps(file, data)
= json.dumps(数据, 文件)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值