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

 

 

posted on 2025-04-15 09:54  ayao  阅读(45)  评论(0)    收藏  举报

导航