字典

字典:dic = {'name':'alex'}
1,增
dic['k'] = 'v'
有键值对,则覆盖
setdefault 有键值对,不添加
dic.setdefault('k1','v1') 可以
dic.setdefault('name','barry')

2,删
pop dic.pop('name') 有返回值,返回得是对应的值
dic.pop('k2',None)
dic.popitem()随机删除
del dic['name']
del dic
clear 清空

3,改
dic['name'] = 'v'
dic = {'name':'alex'}
dic2 = {'name':'barry','age':18}
dic.update(dic2)
print(dic) {'name':'barry','age':18}
print(dic2)  {'name':'barry','age':18}
a,b = [1,2]
print(a,b)  # 1,2

a = 1
b = 2
a,b=b,a

4,查
print(dic.keys())
print(dic.values())
print(dic.items())  # for k,v in dic.items():
#以上三个 都可以for循环
dic['name']
dic.get('name')

字典的方法:

序号 方法 解释
1 clear() 清空

2

get()

通过 get 获取,设置默认值,如果键名不存在,返回设置的默认值

3

pop()

键值对删除,有返回,没有原来的键会报错(自行设置返回键就不会报错)

4

update()

修改

5

 

copy()

 

  返回一个字典的浅复制
6  items() 以列表返回可遍历的(键, 值) 元组数组 
7 popitem()   随机删键值对
8
values()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
9
fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
10
keys() 
以列表返回一个字典所有的键
11
setdefault()
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

 

Python 中的字典查询主要有两种方法,一种是用 [ ] 直接通过键名查询,另一种方法是通过 .get() 来获取键名。

# 查询 
# Issue 1, 直接通过键名获取
   print("Issue 1 : ", member["Lilei"]) 

# Issue 2, 通过 get 获取
    print("Issue 2 : ", member.get("Lilei")) 

# Issue 3, 如果通过 get 获取的键名不存在,返回默认值 
    print("Issue 3 : ", member.get("Mike"))

# Issue 4, 可以通过 get 获取,设置默认值,如果键名不存在,返回设置的默认值
   print("Issue 4 : ", member.get("Mike", 18))

 >>>>> 以下为程序输出结果 
>>>>> Issue 1 : 16
            Issue 2 : 16 
            Issue 3 : None 
            Issue 4 : 18

            

赋值

Python 字典赋值与 Python 字典查询类似,可以用 [ ] 来为指定的键赋值,如果被指定的键不存在,Python 会为你创建一个新的键值对。


# 赋值
# Issue 1, 直接通过方括号赋值 
member["Lilei"] = 18 
print("Issue 1 : ", member["Lilei"]) 

# Issue 2,通过方括号为不存在的键名创建新值
 member["Tony"] = 20 
print("Issue 2 : ", member["Tony"]) 
 
>>>>> 以下为程序输出结果 
>>>>> Issue 1 : 18 
            Issue 2 : 20

在实际应用中,我们可能会尝试获取一个不存在的键名,这是,Python 会报出 KeyError 的错误,我们可以通过 try - except 
捕获异常来处理,此外,我们也可以通过 in 来判断键名是否存在。 # 查找 # Issue 1 如果键名不存在与字典,会返回 KeyError 错误 try: mike_member = member["Mike"] except KeyError: print("Issue 1 : Can not found member named: Mike") # Issue 2 可以用 in 查找键是否存在 print("Issue 2 : Mike in member: ", "Mike" in member) print("Issue 2: Lilei in member: ", "Lilei" in member) >>>>> 以下为程序输出结果 >>>>> Issue 1 : Can not found member named: Mike Issue 2 : Mike in member: False Issue 2: Lilei in member: True

 

字典的表示方法:

info_dic={'name':'xxxx','age':18,'sex':'female'}
# 常用操作:
#
1.存/取
info_dic={'name':'egon','age':18,'sex':'male'}
  print(info_dic['name11111111'])#找不到则报错了
  print(info_dic.get('name',None))
  print(info_dic.get('name222222',None))#get方法找不到不报错,可以自己设定默认值

#pop:key存在则弹出值,不存在则返回默认值,如果没有默认值则报错
# print(info_dic.pop('nam123123123123123123e',None))
# print(info_dic)

# print(info_dic.popitem())
# print(info_dic)

# info_dic['level']=10
# print(info_dic)

#
#     删除
info_dic={'name':'egon','age':18,'sex':'male'}
# info_dic.pop()
# info_dic.popitem()

# del info_dic['name']


#
#     键s,值s,键值对
info_dic={'name':'egon','age':18,'sex':'male'}
# print(info_dic.keys())
# print(info_dic.values())
# print(info_dic.items())

# for k in info_dic:
#     # print(k,info_dic[k])
#     print(k)

# print('========>')
# for k in info_dic.keys():
#     print(k)

# for val in info_dic.values():
#     print(val)

# for k,v in info_dic.items(): #k,v=('name', 'egon')
#     print(k,v)



#     长度
# info_dic={'name':'egon','age':18,'sex':'male'}
# print(len(info_dic))
#
#     循环
#
#     包含in

# info_dic={'name':'egon','age':18,'sex':'male'}
# print('name' in info_dic)
# print('name' in info_dic.keys())
# print('egon' in info_dic.values())
# print(('name','egon') in info_dic.items())



#掌握
info_dic={'name':'egon','age':18,'sex':'male'}
# info_dic.update({'a':1,'name':'Egon'})
# print(info_dic)

# info_dic['hobbies']=[]
# info_dic['hobbies'].append('study')
# info_dic['hobbies'].append('read')
# print(info_dic)

#setdefault:key不存在则设置默认值,并且放回值默认值
#key存在则不设置默认,并且返回已经有的值

# info_dic.setdefault('hobbies',[1,2])
# print(info_dic)
# info_dic.setdefault('hobbies',[1,2,3,4,5])
# print(info_dic)

# info_dic={'name':'haiyan','age':18,'sex':'male'}

# {'name':'egon','age':18,'sex':'male','hobbies':['study']}
# info_dic.setdefault('hobbies',[]).append('study')

# {'name':'egon','age':18,'sex':'male','hobbies':['study','read']}
# info_dic.setdefault('hobbies',[]).append('read')

# {'name':'egon','age':18,'sex':'male','hobbies':['study','read','sleep']}
# info_dic.setdefault('hobbies',[]).append('sleep')
# l=info_dic.setdefault('hobbies',[])
# print(l,id(l))
# print(id(info_dic['hobbies']))

# print(info_dic)



#了解
# d=info_dic.copy()
# print(d)
# info_dic.clear()
# print(info_dic)


# d=info_dic.fromkeys(('name','age','sex'),None)
# print(d)
# d1=dict.fromkeys(('name','age','sex'),None)
# d2=dict.fromkeys(('name','age','sex'),('egon',18,'male'))
# print(d1)
# print(d2)




# info=dict(name='haiyan',age=18,sex='male')
# print(info)

#
# info=dict([('name','haiyan'),('age',18)])
# print(info)

 

 

一、字典

1、无序(不能索引)

2、数据关联性强

3、键值对。唯一一个映射数据类型。

#字典的键必须是可哈希的

【可哈希即不可变(不可变的数据类型:字符串,数字,布尔值,元祖)并且是唯一的】

【不可哈希的即可变(可变数据类型:列表,字典,set)】

 

二、增     #1、

1、

dic = {'name':'lishi','age':21,'hobby':'sleep'}
dic['weight']=60
print(dic)
输出:
{'name': 'lishi', 'age': 21, 'hobby': 'sleep', 'weight': 60

2、setdefault   有键值对不做任何改变,没有键值对才添加

dic.setdefault('k')
print(dic)  # {'name': 'lishi', 'age': 21, 'hobby': 'sleep', 'k': None}
dic.setdefault('name','shi')
print(dic)   # {'name': 'lishi', 'age': 21, 'hobby': 'sleep'}

   删 # pop:按键删,有返回,没有原来的键会报错   popitem:随机删键值对

      clear:清空                       dic:删除的键如果没有则报错

1、pop:键值对删,有返回,没有原来的键会报错(自行设置返回键就不会报错)

dic = {'name':'lishi','age':21,'hobby':'sleep'}
print(dic.pop('height'))  # 报错
print(dic.pop('weight',None))  # None
print(dic.pop('weight','没有不报错'))  # 没有不报错

2、popitem:随机删键值对


dic.popitem()
print(dic)

3、clear:清空

dic.clear()
print(dic)  # {}

 

4、del:删除的键如果没有则报错

del dic['name']
print(dic)  # {'age': 21, 'hobby': 'sleep'}

三、改 update

dic = {'name':'lishi','age':21,'hobby':'sleep'}
dic['name'] = 'jassin'
print(dic)

update  dic.update(dic1)##将dic1添加并覆盖到dic

dic.update(dic1)##将dic1添加并覆盖到dic
dic = {'name':'lishi','age':21,'hobby':'sleep'}
dic1 = {'name':'jassin','age':21,'hobby':'sleep','job':'student'}
dic.update(dic1)
print(dic) # {'name': 'jassin', 'age': 21, 'hobby': 'sleep', 'job': 'student'}
print(dic1) #{'name': 'jassin', 'age': 21, 'hobby': 'sleep', 'job': 'student'}

四、查  用get时。不会报错# 没有可以返回设定的返回值

dic = {'name':'lishi','age':21,'hobby':'sleep'}
print(dic['name'])
print(dic['dadada'])  # 报错
print(dic.get('name'))  # lishi
print(dic.get('dadadd'))  # None(没有这个键返回None默认)
print(dic.get('dadadad','没有这个键'))  # 没有这个键

五、

#将键以列表形式输出
dic = {'name':'lishi','age':21,'hobby':'sleep'} print(dic.keys()) # dict_keys(['name', 'age', 'hobby'])
#打印出列表
for key in dic.keys():
print(key)
输出:键
name
age
hobby

for value in dic.values():
print(value)


输出:值

for i in dic:
print(i)


输出:
同上
for key,value in dic.items():
print(key,value)
输出:
name lishi
age 21
hobby sleep
 

将alex 首字母大写

dic1={'name':['alex',2,3,5],'job':'teacher'}
dic1['name'][0]=dic1['name'][0].capitalize()
print(dic1)

输出:
{'name': ['Alex', 2, 3, 5], 'job': 'teacher'}

 

posted @ 2017-10-25 16:33  小杜要加油  阅读(128)  评论(0编辑  收藏  举报