python内置字典数据类型_Python 字典数据类型

像列表一样,“字典”是许多值的集合。但不像列表的下标, 字典的索引可以使用许多不同数据类型, 不只是整数。 字典的索引被称为“键”,键及其关联的值称为“键-值”对。

>>> myDog={'size':'big','color':'gray','desc':'dog'}

>>> myDog['size']

'big'

>>> myDog[1]

Traceback (most recent call last):

File "", line 1, in myDog[1]

KeyError: 1

>>> myDog[1]='abc'

>>> myDog

{'size': 'big', 'color': 'gray', 'desc': 'dog', 1: 'abc'}

>>> myDog[True]='good'## 在字典中 True 和 1 是同一 key

>>> myDog

{'size': 'big', 'color': 'gray', 'desc': 'dog', 1: 'good'}

>>> myDog[False]='bad'

>>> myDog

{'size': 'big', 'color': 'gray', 'desc': 'dog', 1: 'good', False: 'bad'}

>>> myDog[0]='www'## 在字典中 False 和 0 是同一 key

>>> myDog

{'size': 'big', 'color': 'gray', 'desc': 'dog', 1: 'good', False: 'www'}

字典与列表

列表中项是有序的,字典中的表项是不排序的。名为 spam 的列表中,第一个表项是 spam[0]。但字典中没有“第一个”表项。两个列表是否相同表项的顺序很重要,但在字典中,键-值对输入的顺序并不重要。

>>> spam=['a','b','c']

>>> bacon=['c','b','a']

>>> spam==bacon

False

>>> spam={1:'a',2:'b',3:'c'}

>>> bacon={3:'c',1:'a',2:'b'}

>>> spam==bacon

True

example:

def birs():

birthdays={'Tom':'10.1','Joe':'5.12','Mark':'8.3'}

while True:

print('请输入姓名')

name=input()

if name=='':

break

if name in birthdays:

print(name+'的生日是'+birthdays[name])

else:

print('没有找到'+name+'生日信息')

print('请输入'+name+'的生日')

birthday=input()

birthdays[name]=birthday

print(name+'的生日信息已录入')

birs()

请输入姓名

Tom

Tom的生日是10.1

请输入姓名

Veau

没有找到Veau生日信息

请输入Veau的生日

2.1

Veau的生日信息已录入

请输入姓名

Joe

Joe的生日是5.12

请输入姓名

Veau

Veau的生日是2.1

请输入姓名

keys()、 values()和 items()方法

利用 keys()、 values()和 items()方法,循环分别可以迭代键、值或键-值对(元组)。

>>> spam

{1: 'a', 2: 'b', 3: 'c'}

>>> for i in spam.keys():

print(i)

1

2

3

>>> for v in spam.values():

print(v)

a

b

c

>>> for k,v in spam.items():

print(str(k)+' - '+v)

1 - a

2 - b

3 - c

>>> for n in spam.items():

print(n)

(1, 'a')

(2, 'b')

(3, 'c')

in 和 not in 操作符可以检查值是否存在于列表中。也可以利用这些操作符,检查某个键或值是否存在于字典中。

>>> mydog={'size':'big','color':'gray','desc':'dog'}

>>> 'size' in mydog

True

>>> 'name' in mydog

False

>>> 'color' in mydog

True

>>> 'color' in mydog.keys()

True

>>> 'dog' in mydog.values()

True

>>> 'name' not in mydog.items()

True

get()方法

字典 get()方法,它有两个参数:要取得其值的键,以及如果该键不存在时,返回的备用值。

>>> mydog

{'size': 'big', 'color': 'gray', 'desc': 'dog'}

>>> mydog['name']

Traceback (most recent call last):

File "", line 1, in mydog['name']

KeyError: 'name'

>>> mydog.get('name','w')

'w'

>>> mydog.get('size')

'big'

>>> mydog.get('color','red')

'gray'

setdefault()方法

为字典中某个键设置一个默认值,当该键没有任何值时使用它。

>>> mydog

{'size': 'big', 'color': 'gray', 'desc': 'dog'}

>>> mydog.setdefault('name','w')

'w'

>>> mydog

{'size': 'big', 'color': 'gray', 'desc': 'dog', 'name': 'w'}

>>> mydog.setdefault('name','mm')

'w'

>>> mydog

{'size': 'big', 'color': 'gray', 'desc': 'dog', 'name': 'w'}

## 统计每个字符各有多少个

##import pprint格式化打印,可对结果排序

def characterCount(message):

count={}

for s in message:

count.setdefault(s,0)

count[s]+=1

print(count)

##pprint.pprint(count)

message='啊,我爱我的祖国 - my name is tome'

characterCount(message)

{'啊': 1, ',': 1, '我': 2, '爱': 1, '的': 1, '祖': 1, '国': 1, ' ': 5, '-': 1, 'm': 3, 'y': 1, 'n': 1, 'a': 1, 'e': 2, 'i': 1, 's': 1, 't': 1, 'o': 1}

嵌套的字典和列表

def countMon():

users={

'Tone':{'1元':3,'5角':2,'1角':6},

'Joe':{'1元':2,'5角':6,'1角':9},

'Maruy':{'1元':5,'5角':3,'1角':8},

'Ken':{'1元':3,'5角':5,'1角':12}

}

count={}

for item in users.values():

for k,v in item.items():

count.setdefault(k,0)

count[k]+=v

print(count)

countMon()

{'1元': 13, '5角': 16, '1角': 35}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值