【Python】字典和结构化数据

字典数据类型

利用键访问对应值

像列表一样,“字典”是许多值的集合。但不像列表的下标,字典的索引可以使用很多不同数据类型,不只是整数。

  • 键:字典的索引被称为“键”
  • 键-值对:键及其相关联的值称为“键-值”对

字典长下面这个样子↓

myCat={'size'='fat','color'='gray','disposition'='loud'}
  • 这是将一个字典变量赋给myCat变量
  • 字典的键是’size’、‘color’和’disposition’
  • 这些键对应的值为’fat’、‘gray’和’loud’

可以通过键访问对应的值↓(就像通过下标访问列表对应的值)

myCat={'size'='fat','color'='gray','disposition'='loud'}
print(myCat[size])
fat

无法切片

字典的表项是不排序的,所以不能像列表那样切片

in操作符

可以使用in操作符判断前面输入的字符串是否作为键存在于字典中

birthday={'Alice':'April 4','Bob':'Dec 12'}
print('Alice' in birthday)
True

字典使用

有三个字典方法

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

1.keys()返回字典键

t=字典名.keys()

2.values()返回字典值

v=字典名.values()

3.items()返回字典键-值对

i=字典名.items()

与for循环的结合迭代

spam={'color':'red','age':42}
for k in spam.keys(): 
    print(k)

与in、not in 操作符结合
检查某个键和值是否在字典中

spam={'name':'SYolin','gender':'male'}
print('name' in spam.keys())
True

get()方法访问字典中的键

get()方法有两个参数:

字典名.get(要取的键,若键不存在返回的备用值)

有效避免了在取得字典中的键或值之前,还需检查检查是否存在的步骤

setdefault()方法

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

就像达到以下的效果

spam={'name':'Pooka','age':5}
if 'color' not in spam:
    spam['color']='black

setdefault()提供了一种方式,在一行中完成这件事,需要传递两个参数

1.第一个参数是要检查的键

2、第二个参数是,如果该键不存在时要设置的值。如果该键存在,第二个参数不会被使用

字典名.setdefault(检查的键,不存在时设置的值)

对上面的代码进行改进↓

spam={'name':'Pooka','age':5}
spam.setdefault('color','black')
print(spam['color'])
black

setdefault()方法是一个很好地快捷方式,可以确保一个键的存在。

漂亮打印

导入pprint模块,就可以使用pprint()和pformat()函数
可以以键-值对成行“漂亮”打印一个字典值

  • pprint():打印到屏幕上
  • pformat():得到漂亮文本的字符串,而不是打印到屏幕上

使用↓

pprint.pprint(字典名)          # 打印到屏幕上
pprint.pformat(字典名)         # 得到字符串
print(pprint.pformat(字典名))  # 和第一行代码等价

利用字典统计句子每个字符个数

import pprint
message='It was a bright cold day in April, and the clocks were strking thirteen.'
count={}
for character in message:
    count.setdefault(character,0)
    count[character]+=1
pprint.pprint(count)

如果是取得某个字符的个数

import pprint
message='It was a bright cold day in April, and the clocks were strking thirteen.'
target=input()
count={target:0}
for character in message:
    if character in count:  # 直接用in操作符检查输入的名字是否作键存在于字典中
        count[target]+=1
pprint.pprint(count)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值