Python--Demo11--列表型:字典类型

字典

解释:

  • 字典和列表一样都是一列值得集合;
  • 字典的索引并不像列表那样必须是整数,字典的索引可以是很多类型;
  • 字典的索引被称为“键”,键及键关联的值合在一起称为“键值”对。

语法:

{"key1":value,"key2":value,....}或者{'key1':value,'key2':value,....}

示例:

>>> mydic={'name':'bobo','age':12,'bobby':'apple'}
>>> mydic
{'name': 'bobo', 'age': 12, 'bobby': 'apple'}
>>> mydic['age']
12
>>> complexdic={'id':1,'content':mydic,'range':10}
>>> complexdic
{'id': 1, 'content': {'name': 'bobo', 'age': 12, 'bobby': 'apple'}, 'range': 10}
>>> complexdic['content']
{'name': 'bobo', 'age': 12, 'bobby': 'apple'}
>>> complexdic['content']['name']
'bobo'

说明:字典和列表按照索引取值,dict['键名'];字典中键对应的值的类型还可以是字典。

字典与列表:

字典中的键值对是不按照顺序存储的,所以只要键值对个数一样,内容一样,那么这两个字典是相等的

示例:

>>> mydic
{'name': 'bobo', 'age': 12, 'bobby': 'apple'}
>>> mydd={'name':'bobo',"bobby":'apple',"age":12}
>>> mydd
{'name': 'bobo', 'bobby': 'apple', 'age': 12}
>>> mydd==mydic
True
>>> mylis=[1,2,3]
>>> mylis
[1, 2, 3]
>>> myll=[1,3,2]
>>> myll
[1, 3, 2]
>>> mylis==myll
False

说明:字典不是顺序存储的,列表是顺序存储的。字典像列表那样切片。

字典遍历方法:

keys()、values()、items():分别是获取所有得键、获取所有得值、获取所有的键值(这个值是个元组)

示例:

>>> mydic
{'name': 'bobo', 'age': 12, 'bobby': 'apple'}
>>> mydic.keys()
dict_keys(['name', 'age', 'bobby'])
>>> for x in mydic.keys():
...     print(x)
...
name
age
bobby
>>> for x in mydic.values():
...     print(x)
...
bobo
12
apple
>>> for x,y in mydic.items():
...     print(x,y)
...
name bobo
age 12
bobby apple

检查字典中的键、值存在情况

说明:在访问一个键的值之前,确定键在字典中是否存在是十分重要的。

get()方法:

两个参数,第一个是键名;第二个是指定值;当键对应的值不存在或者键都不存在的时候,我们可以返回指定的值。

示例:

>>> mydic
{'name': 'bobo', 'age': 12, 'bobby': 'apple'}
>>> key_value=mydic.get('adress',-1)
>>> key_value
-1
>>> key_value1=mydic.get('name','不存在')
>>> key_value1
'bobo'

说明:当键对应的值存在的时候,get会返回字典中的键对应的值;如果不存在就会返回我们指定的值

setdefault()方法:

当遇到给一个键设置一个默认值是,setdefault()方法就十分方便了。它内置检查机制,帮我们很好地解决判断键是否存在的问题。

示例1:我们没有setdefault()时的做法:

>>> mydic
{'name': 'bobo', 'age': 12, 'bobby': 'apple'}
>>> if 'color' in mydic:
...     pass
... else:
...     mydic['color']='yellow'
...
>>> mydic
{'name': 'bobo', 'age': 12, 'bobby': 'apple', 'color': 'yellow'}

示例2:当使用了setdefault()方法:

>>> mydic
{'name': 'bobo', 'age': 12, 'bobby': 'apple', 'color': 'yellow'}
>>> mydic.setdefault('adress','china')
'china'
>>> mydic
{'name': 'bobo', 'age': 12, 'bobby': 'apple', 'color': 'yellow', 'adress': 'china'}
>>> mydic.setdefault('adress','usa')
'china'
>>> mydic
{'name': 'bobo', 'age': 12, 'bobby': 'apple', 'color': 'yellow', 'adress': 'china'}

说明:setdefault()方法在检查到没有键对应的值时,会将键添加到字典中,并设置我们指定的默认值。当发现键有对应的值后,就不会再对键对应的值进行重新赋值。

示例3:给你一串字符串,要求你能够计算出每一个字符在字符串中出现了几次?

思路:字符--次数,这明显想让我们使用字典昂。字符作为键--次数作为值。

示例:

mystr='alsjdnwlsdisla'
count_dic={}
for item in mystr:
    count_dic.setdefault(item,0) # 先给键添加到字典中,防止给键设置值时报错
    count_dic[item]=count_dic[item]+1 # 通过索引给索引对应的值赋值 每次遍历次数加一
print(count_dic)

输出结果:

{'a': 2, 'l': 3, 's': 3, 'j': 1, 'd': 2, 'n': 1, 'w': 1, 'i': 1}

猜你喜欢

转载自www.cnblogs.com/bigbosscyb/p/12325682.html