当前位置: 首页 > article >正文

举一反三学python(2)—函数应用

Con_Info = [
  "王伟(男),河南郑州, 137****8331",
  "杨秀娟(女),陕西西安, 138****4117",
  "刘子豪(男),河北廊坊, 136****2964",
  "李发魁(男),河南洛阳, 139***3297",
  "王小花(女),山西太原, 138****0042",
  ]

'''
要求对上述文本数据解析,获得如下格式的结构化信息:
[
    {"name": "王伟", "sex":"男", address": "河南郑州", "pho": "137****8331"},
    {"name": "杨秀娟", "sex":"女","address": "陕西西安", "pho": "138****4117"},
]
我们先分析一个例子,解析这个文本数据:""王伟(男),河南郑州, 137****8331"。
首先,定义一个函数 parse_parts,通过逗号拆分出姓名(性别)、住址、手机号码三大部分。
其次,定义一个函数 parse_name,通过对姓名(性别)部分的进一步拆分,获得姓名、性别分项。
然后,定义一个函数 parse_profile,组装数据成要求的格式
接着,定义一个函数 parse_creators,完成解析。 
最后,调用函数,完成任务  
'''

# 通过逗号拆分出每条数据为姓名(性别)、住址、手机号码三大部分
def parse_parts(creator):
  info = creator.split(',')
  name_sex, address, pho = info[0], info[1], info[2]
  return name_sex, address, pho

# 通过对姓名(性别)部分的进一步拆分,获得姓名、性别分项
def parse_name(name_sex):
  index = name_sex.find('(')                # 找到符号(的索引
  name, sex = name_sex[0:index], name_sex[index+1:-1]  # 切片分割字符串
  return name, sex

# 方法1
# 调用函数,组装数据成要求的格式
# def parse_profile(creator):
#   name_sex, address, pho = parse_parts(creator)
#   name, sex = parse_name(name_sex)
#   return {"name": name, "sex": sex, "address": address, "pho": pho}
#
# 调用函数,解析数据逐一添加新的列表中
# def parse_creators(creators):
#   profiles = []
#   for creator in creators:       # 数据遍历
#     profile = parse_profile(creator)
#     profiles.append(profile)
#   return profiles

# 方法2
# def parse_creators(creators):
#   profiles = []
#   for creator in creators:
#     name_sex, address, pho = parse_parts(creator)
#     name, sex = parse_name(name_sex)
#     profiles.append({"name": name, "sex": sex, "address": address, "pho": pho})
#   return profiles

# 方法3, 与方法1类同,只是后面用的是列表推导式
def parse_profile(creator):
  name_sex, address, pho = parse_parts(creator)
  name, sex = parse_name(name_sex)
  return {"name": name, "sex": sex, "address": address, "pho": pho}
def parse_creators(creators):
  return [parse_profile(creator) for creator in creators]

# 调用函数,完成任务
if __name__ == '__main__':
  profiles = parse_creators(Con_Info)
  print(profiles)

运行结果展示:


http://www.kler.cn/a/4829.html

相关文章:

  • Mysql常见知识点
  • HTMLHTML5革命:构建现代网页的终极指南 - 0. 课程目录设计
  • 计算机网络期末复习(知识点)
  • C++中的多重继承
  • 如何评价2023美赛春季赛YZ题加赛 大学生数学建模
  • mybatis核心配置文件
  • Java Web程序设计——Servlet的认识和创建
  • 【Linux】进程程序替换
  • Spring入门篇7 --- spring事务
  • HTTP 重定向状态码是什么意思?
  • 组提交_并行复制
  • FITC-PEG-SH,荧光素-聚乙二醇-巯基的用途:用于修饰氨基酸,蛋白质等
  • day9—编程题
  • 软件测试零基础好入门么
  • 电力行业等保定级评级依据是什么?分为几个等级?
  • 分布式锁实现方案
  • 【Note2】macvlan,sol
  • 【蓝桥杯-筑基篇】搜索
  • 微信小程序商城系统必须配置SSL证书吗?
  • 中国版ChatGPT在哪些方面具有快速发展的机会?
  • Ubuntu之NVIDIA GeForce显卡驱动安装
  • Redis 基本数据类型
  • 辉煌优配|猪肉概念股大幅拉升,巨星农牧涨停