Python学习日志08 - 字典

Python学习日志

RBHGO的主页欢迎关注

温馨提示:创作不易,如有转载,注明出处,感谢配合~

目录

Python学习日志08课 - 字典

前言

和大家分享几个比较好用的函数,可以提前了解,使用。后面我分享函数的时候应该会再次提到。下面这条码同时用到了这三个函数,map函数让我们一行就完成之前3行代码才能完成的任务,而try和except保证代码成功运行之前不会崩溃。

# map函数:映射作用,用于单行多条输入,将分裂的字符串映射为整型、浮点型······
# try函数:把可能出现状况的代码保护起来执行
# except函数:如果出现了状况,通过except进行错误捕获,然后执行相应的处理代码

while True:
    try:
        a, b, c = map(int, input('请输入三条边的长度: ').split())
        print(a, type(a))
        print(b, type(b))
        print(c, type(c))
        break
    except ValueError:
        print('输入错误,请重新输入!! ! ')
进入正题

至今为止,我们已经给大家分享了Python中的三种容器型数据类型,但是这些数据类型还不足以帮助我们解决所有的问题。例如,我们要保存一个人的信息,包括姓名、年龄、体重、家庭住址、个人爱好、本人手机号等信息,你会发现我们之前学过的列表、元组和集合都不是最理想的选择。学习日志08课主要和大家分享容器型数据类型的第四种—>字典。字典dict(dictionary) —>元素由键和值两部分构成,冒号前面的称为键,冒号后面的称为值,合在一起叫键值对。

创建字典

在Python中创建字典可以使用{}字面量语法,这点跟上节课分享的集合是一样的。但是字典的{}中的元素是以键值对的形式存在的,每个元素由:分隔的两个值构成,:前面是键,:后面是值。

# 在学习日志07课提到,空字典的创建
dict07 = {
   }

# 用字典保存一个人的信息,字典里可以有列表、字典
student1 = {
   
    'id': '3016',
    'name': 'RBHGO',
    'sex': 'male',
    'weight': '73',
    'hight': '175',
    'address': '慕尼黑',
    'favorites': ['足球', '主机游戏', '音乐'],
    'contacts': {
   
        'QQ': '4*******9',
        'TEL': '191*****466'
    }
}
print(student1['name'])                        # 运行结果:RBHGO
print(student1['favorites'])                   # 运行结果:['足球', '主机游戏', '音乐']
print(student1['contacts']['TEL'])             # 运行结果:191*****466
for fav in student1['favorites']:
    print(fav,end = ' ')                     # 运行结果:足球 主机游戏 音乐 

通过上面的代码,相信大家已经看出来了,用字典来保存一个人的信息远远优于使用列表或元组,因为我们可以用:前面的键来表示条目的含义,而:后面就是这个条目所对应的值。接下来我细细介绍创建字典的方法。

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
rsyslog是一个开源的日志管理工具,它可以将系统日志发送到远程服务器或者存储到本地文件中。在rsyslog中,可以使用字典设置来定义输出格式,使得日志输出更加清晰易读。下面是一个使用python解析rsyslog字典设置的例子: ```python import re def parse_rsyslog_dict(line): # 定义rsyslog字典的正则表达式 rsyslog_dict_regex = r'^\s*<([0-9]+)>([a-zA-Z]{3}\s+\d+\s+\d+:\d+:\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)$' match = re.match(rsyslog_dict_regex, line) if match: # 解析出rsyslog字典中的各个字段 severity = int(match.group(1)) % 8 facility = int(match.group(1)) // 8 timestamp = match.group(2) hostname = match.group(3) appname = match.group(4) procid = match.group(5) msg = match.group(6) return (severity, facility, timestamp, hostname, appname, procid, msg) else: return None # 测试 line = '<14>Jun 15 12:02:01 my-hostname my-app[1234]: Hello, world!' result = parse_rsyslog_dict(line) print(result) # (6, 1, 'Jun 15 12:02:01', 'my-hostname', 'my-app', '1234', 'Hello, world!') ``` 在上面的代码中,我们首先定义了一个正则表达式`rsyslog_dict_regex`,用来匹配rsyslog字典的格式。然后在`parse_rsyslog_dict`函数中,我们使用`re.match`函数来匹配输入的字符串,如果匹配成功,则解析出rsyslog字典中的各个字段,并返回一个元组。最后,我们对`parse_rsyslog_dict`函数进行了测试,将一个rsyslog字典作为输入,预期输出为一个元组。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值