python day05

一、字典

1.数据类型划分:可变数据类型和不可变数据类型。

不可变数据类型:元组,布尔值,数字,str(字符串,对str进行任何操作都是形成一个新的str),又叫可哈希。

可变数据类型:列表,字典,集合。不可哈希。

字典的key:必须是不可变数据类型,可哈希。

字典的value:任意数据类型。

字典的优点:二分查找去查询,储存大量的关系型数据。

字典的特点:无顺序的。

dic = {
    'name':['大猛','小孟'],
    'py9':[{'num':71,'avg_age':18,},
           {'num': 71, 'avg_age': 18, },
           {'num': 71, 'avg_age': 18, },
           ],
    True:1,
    (1,2,3):'wuyiyi',
    2:'二哥',
}

增:

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male'}
dic1['high'] = 185  #没有键值对,添加
dic1['age'] = 16  #如果有键,则值覆盖

dic1.setdefault('weight')  # 有键值对,不做任何改变,没有才添加。
print(dic1)
dic1.setdefault('weight',150)
print(dic1)
dic1.setdefault('name','二哥')
print(dic1)

删:

print(dic1.pop('age'))   # 有返回值,按键去删除
print(dic1.pop('二哥',None))   # 可设置返回值否则会报错
print(dic1)

print(dic1.popitem())  # 随机删除 有返回值 是元组里面是删除的键值。
print(dic1)

清空字典:

dic1.clear() 

del删除键值对和整个字典:

del dic1['name1']
print(dic1)
del dic1
print(dic1)

改:就是增里的覆盖

update,有的就覆盖没有的就添加。

dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic) 

查:

print(dic1.keys(),type(dic1.keys()))
print(dic1.values())
print(dic1.items())#元组

for i in dic1:#什么都不写,默认打印的键
    print(i)
for i in dic1.keys():
    print(i)
for i in dic1.values():
    print(i)

  

for i in dic1.items():
    print(i)

分别赋值(面试题)

a,b = 1,2
print(a,b)#1 2
a = 1
b = 2
a,b = b,a
print(a,b)

交换

a = 1
b = 2
a,b = b,a
print(a,b)#2 1
a,b = [1,2],[2,3]
print(a,b)
a,b = (1,2)
print(a,b)

键值对打印

for k,v in dic1.items():
    print(k,v)

v1 = dic1['name']
print(v1)

v2 = dic1['name1']  # 报错
print(v2)

print(dic1.get('name1','没有这个键'))

2、字典的嵌套

dic = {
    'name':['alex','wusir','taibai'],
    'py9':{
        'time':'1213',
        'learn_money':19800,
        'addr':'CBD',
           },
    'age':21
}
dic['age'] = 56
print(dic['name'])#
dic['name'].append('ritian')
dic['name'][1] = dic['name'][1].upper()
dic['py9']['female'] = 6
# fhdklah123rfdj12fdjsl3    '       123     12    13'
info = input('>>>').strip()
for i in info:
    if i.isalpha():
        info = info.replace(i," ")
l = info.split()
print(len(l))

  

 

  

 

 

 

 

 

  

 

posted @ 2018-11-27 21:38  李然然  阅读(134)  评论(0编辑  收藏  举报