字典-dict(无序)

 

 

 

# 字符串
# 数组 list:有序(有下标)
# 字典{key:value} dict:无序
dict 格式如下:
stu_info={
    'username':'小明',
    'password':'123456',
    'tel':13254576487,
    'add':'北京'
}

# 创建/定义 字典
d1={}#创建空字典
d2=dict()#创建空字典

# 为字典增加元素
d1['name']='小华'
d1['class']='狮子座'
d1.setdefault('class','双子座')#不存在时会赋值;已存在时,不修改原来的值
print(d1)#打印字典d1
print(d1['name'])#打印字典d1中的元素name的value;     #字典中的key:name不存在时报错:KeyError
print(d1.get('names',0))#打印字典d1中的元素name的value;#字典中的key:name不存在(且未指定返回值)时默认none,否则返回指定返回值(不报错)。
print(d1.keys())#取字典中所有的key
print(d1.values())#取字典中所有的value

# 删除
# d1.pop('name')
# del d1['name']
# d1.popitem()#随机删除一个元素
# d1.clear()#清空

# update的用法详解:
d1={
    'name':'xiaohua',
    'age':18
}
d2={'name':'abc','addr':'北京'}
print(d1)
d1.update(d2)#update:兼具更新和extend的功能(存在时:update;不存在时:extend)
print(d1)

 

# 示例:按指定顺序显示占位
s3='insert into user value ({username},{password},{tel})'
# new_s3=s3.format(password='123456',tel=110,username='abcd')#传字符
new_s3=s3.format_map(#传字典
    {'password':123456,
     'username':"abcd",
     "tel":110}
)
print(new_s3)

 

 

# list循环时,循环的是list中的每个元素。

# 字典嵌套字典嵌套list:

stus={
    "胖妞":{
        'house':['三环','四环','七环'],
        'car':{
            "日本":['雷克萨斯','英菲尼迪'],
            "中国":['东风','红旗','比亚迪','宝骏'],
            "美国":['福特','凯迪拉克']
        },
        "化妆品":{
            'sk-2':1000,
            "YSL":800
        }
    }
}
car=stus['胖妞']['car']#{'日本': ['雷克萨斯', '英菲尼迪'], '中国': ['东风', '红旗', '比亚迪', '宝骏'], '美国': ['福特', '凯迪拉克']}
#print(car.values())#[['雷克萨斯', '英菲尼迪'], ['东风', '红旗', '比亚迪', '宝骏'], ['福特', '凯迪拉克']]
car.values(2)(0)='美车'
print(car)
all_count=0
for c in car.values():
    all_count=len(c)+all_count
print('胖妞共有'+str(all_count)+'辆车')

car['德国']=['奥迪','奔驰']#胖妞又买了德国车:奥迪和奔驰
del stus['胖妞']['化妆品']['sk-2']#删除胖妞的化妆品sk-2
#胖妞又在四环买了套房
house=stus['胖妞']['house']
house.append('四环')

 

posted @ 2019-05-13 19:23  mcdull0  阅读(474)  评论(0编辑  收藏  举报