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

Posted bigbosscyb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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}

 

以上是关于Python--Demo11--列表型:字典类型的主要内容,如果未能解决你的问题,请参考以下文章

python 高级数据类型(列表 元祖 字典 字符串)

Python中高级变量类型(列表,元组,字典,字符串,公共方法...)

python下列哪些类型的数据可以放入到集合中 列表 字典 集合 整型 浮点型?

高级变量类型(列表,元组,字典,字符串,公共方法,变量高级)for循环

Python字典的初识增删改查及嵌套

python之字符串,列表,字典内置方法总结