python学习笔记——字典推导式
python学习 笔记——字典推导式
字典推导式,可以简化字典使用。字典:dict,键值对,值可修改,如{"a":"val1","key2":abc};元组,tuple,值集合,不可修改,省内存,如 g = ('abc',123,True);array,数组
# 使用字典推导式简化代码 if cursor.description is None: return {} return {item[0]: idx for idx, item in enumerate(my_dict)}
my_dict = {'na':'tom','age':18,'sex':True}
for idx, item in enumerate(my_dict):
print(f"idx:{idx}, item:{item}")
输出:这里是取键的元组进行便利,item类型是str
idx:0, item:na
idx:1, item:age
idx:2, item:sex
my_dict = {'na':'tom','age':18,'sex':True}
for k, v in my_dict:
print(f"k:{k}, v:{v}")
结果:报错如图。这种遍历方式,只能获得值,获取不到键

my_dict = {'na':'tom','age':18,'sex':True}
for k, v in my_dict.items():
print(f"k:{k}, v:{v}")
输出:
k:na, v:tom
k:age, v:18
k:sex, v:True
========================================
my_dict = {'na':'tom','age':18,'sex':True}
for k in my_dict.keys():
# print(f"k:{k}, v:{v}")
print(f"{k}")
输出:
na
age
sex
==========================================
my_dict = {'na': 'tom', 'age': 18, 'sex': True}
dict1 = {item:idx for idx,item in enumerate(my_dict)} #字典
dict2 = {k:v for k,v in my_dict.items()} #字典
arr1 = [f"{k}:{v}" for k,v in enumerate(my_dict)] #数组
arr2 = [f"{k}:{v}" for k,v in my_dict.items()] #数组
tuple1 = (1,2,True,"str",my_dict) #元组
tuple2 = (f"{k}:{v}" for k,v in my_dict.items()) #元组
print("dict1:\n",dict1)
print("dict2:\n",dict2)
print("arr1:\n",arr1, '\njoin to str:',','.join(arr1))
print("arr2:\n",arr2, '\njoin to str:',",".join(arr2))
print(tuple1)
print("tuple1:\n",tuple1)
print('join to str:',",".join(tuple2)) #join正确,元素必须为str类型
print('join to str:',",".join(tuple1)) #join出错,元素必须为str类型,才能join;其他类型报错
输出:
dict1:
{'na': 0, 'age': 1, 'sex': 2}
dict2:
{'na': 'tom', 'age': 18, 'sex': True}
arr1:
['0:na', '1:age', '2:sex']
join to str: 0:na,1:age,2:sex
arr2:
['na:tom', 'age:18', 'sex:True']
join to str: na:tom,age:18,sex:True
(1, 2, True, 'str', {'na': 'tom', 'age': 18, 'sex': True})
tuple1:
(1, 2, True, 'str', {'na': 'tom', 'age': 18, 'sex': True})
join to str: na:tom,age:18,sex:True
Traceback (most recent call last):
File "D:\work\coding\gas_data_process\test.py", line 19, in <module>
print('join to str:',",".join(tuple1)) #join出错,元素必须为str类型,才能join;其他类型报错
~~~~~~~~^^^^^^^^
TypeError: sequence item 0: expected str instance, int found
浙公网安备 33010602011771号