python3 字典嵌套学习
遍历字典键对值
# coding:utf-8
# python3.10
student = {"NAME":{"label":"名称","fieldName":"NAME"},"ADDRESS":{"label":"地址","fieldName":"ADDRESS"},"LON":{"label":"经度","fieldName":"LON"},"LAT":{"label":"纬度","fieldName":"LAT"},"SOURCE":{"label":"数据来源","fieldName":"SOURCE"},"CITYCODE":{"label":"城市代码","fieldName":"CITYCODE"},"PRODATE":{"label":"处理日期","fieldName":"PRODATE"}}
for key, value in student.items():
print("\nKey: " + key) # \n 是使得每次输出能隔行显示
print("Value: " + str(value)) # 因为value对应的是字典类型,所以用str()方法将其转化成字符串
输出结果
Key: NAME
Value: {'label': '名称', 'fieldName': 'NAME'}
Key: ADDRESS
Value: {'label': '地址', 'fieldName': 'ADDRESS'}
Key: LON
Value: {'label': '经度', 'fieldName': 'LON'}
Key: LAT
Value: {'label': '纬度', 'fieldName': 'LAT'}
Key: SOURCE
Value: {'label': '数据来源', 'fieldName': 'SOURCE'}
Key: CITYCODE
Value: {'label': '城市代码', 'fieldName': 'CITYCODE'}
Key: PRODATE
Value: {'label': '处理日期', 'fieldName': 'PRODATE'}
如果只输出所有的键
# coding:utf-8
# python3.10
student = {"NAME":{"label":"名称","fieldName":"NAME"},"ADDRESS":{"label":"地址","fieldName":"ADDRESS"},"LON":{"label":"经度","fieldName":"LON"},"LAT":{"label":"纬度","fieldName":"LAT"},"SOURCE":{"label":"数据来源","fieldName":"SOURCE"},"CITYCODE":{"label":"城市代码","fieldName":"CITYCODE"},"PRODATE":{"label":"处理日期","fieldName":"PRODATE"}}
for key in student.keys():
print("fieldName = \"%s\"" % key)
输出结果
fieldName = "NAME"
fieldName = "ADDRESS"
fieldName = "LON"
fieldName = "LAT"
fieldName = "SOURCE"
fieldName = "CITYCODE"
fieldName = "PRODATE"
Python enumerate() 函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法
enumerate(sequence, [start=0])
参数
- sequence – 一个序列、迭代器或其他支持迭代对象。
- start – 下标起始位置。
返回值
返回 enumerate(枚举) 对象。
实例
#普通的 for 循环
>>>i = 0
>>> seq = ['one', 'two', 'three']
>>> for element in seq:
... print i, seq[i]
... i +=1
...
0 one
1 two
2 three
#for 循环使用 enumerate
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three
#用enumerate函数遍历list
for x , y in enumerate(dict):
print ("fieldName%d = \"%s\"" % (x,y))
print ("fieldalias%d = \"%s\"" % (x,y))
字典嵌套
# coding:utf-8
# python3.10
students = {
'kelvin': {
'age': 18,
'course': ['数据结构', '计算机网络', '计算机组成原理', '操作系统']
},
'vicky': {
'age': 19,
'course': ['xx经济学', '西方经济学', '统计学', '发展经济学']
}
}
#嵌套的字典遍历
for name, student in students.items():
print("姓名:", name, "\n年龄:", student['age'], "\n所学课程:") # \n 换行显示
for course in student['course']:
print("\t" + course) # “\t”是指制表符,代表着四个空格
实战
# coding:utf-8
# python3.10
dict = {"NAME":{"label":"名称","fieldName":"NAME"},"ADDRESS":{"label":"地址","fieldName":"ADDRESS"},"LON":{"label":"经度","fieldName":"LON"},"LAT":{"label":"纬度","fieldName":"LAT"},"SOURCE":{"label":"数据来源","fieldName":"SOURCE"},"CITYCODE":{"label":"城市代码","fieldName":"CITYCODE"},"PRODATE":{"label":"处理日期","fieldName":"PRODATE"}}
'''
#嵌套的字典遍历,普通方法
for x , y in dict.items():
print("fieldname:", x , "\nfieldalias:", y['label'])
'''
'''
#嵌套的字典遍历,用enumerate()函数
for x , y in enumerate(dict,start=1):
print ("fieldName%d = \"%s\"" % (x,y))
print ("fieldalias%d = \"%s\"" % (x,y))
'''
#组合的遍历
t = 1
for x , y in dict.items():
print("fieldName%d = \"%s\"" % (t,x))
print("fieldalias%d = \"%s\"" % (t,y['label']))
t = t + 1
输出结果
fieldName1 = "NAME"
fieldalias1 = "名称"
fieldName2 = "ADDRESS"
fieldalias2 = "地址"
fieldName3 = "LON"
fieldalias3 = "经度"
fieldName4 = "LAT"
fieldalias4 = "纬度"
fieldName5 = "SOURCE"
fieldalias5 = "数据来源"
fieldName6 = "CITYCODE"
fieldalias6 = "城市代码"
fieldName7 = "PRODATE"
fieldalias7 = "处理日期"