python3中字符串的处理练习

eg1:
下面的log变量记录了云服务器上 当天上传的文件信息其中第一列是文件名,第二列是文件大小
请编写一个程序,统计出不同类型的 文件的大小总和
比如:
jpeg  9988999
json   324324
png   2423233
----------------------------------log = '''
f20180111014341/i_51a7hC3W.jpeg 169472  FrITJxleSP7wUD-MWw-phL_KP6Eu    15156063244230469   image/jpeg  0
f20180111014341/j_R0Hpl4EG.json 1036    ForGzwzV3e-uR3_UzvppJs1VgfQG    15156064773253144   application/json    0
f20180111020739/i_0TDKs0rD.jpeg 169472  FrITJxleSP7wUD-MWw-phL_KP6Eu    15156076847077556   image/jpeg  0
f20180111020739/j_JFO6xiir.json 1040    FmUhTchdLOd7LBoE8OXzPLDKcW60    15156077904192983   application/json    0
f20180111090619/i_1BwNksbL.jpg  49634   FtXBGmipcDha-67WQgGQR5shEBu2    15156329458714950   image/jpeg  0
f20180111090619/i_3BKlsRaZ.jpg  30152   FoWfMSuqz4TEQl5FT-FY5wqu5NGf    15156330575626044   image/jpeg  0
f20180111090619/i_5XboXSKh.jpg  40238   Fl84WaBWThHovIBsQaNFoIaPZcWh    15156329453409855   image/jpeg  0
f20180111090619/i_6DiYSBKp.jpg  74017   FrYG3icChRmFGnWQK6rYxa88KuQI    15156329461803290   image/jpeg  0
f20180111090619/i_76zaF2IM.jpg  38437   Fui8g5OrJh0GQqZzT9wtepfq99lJ    15156334738356648   image/jpeg  0
f20180111090619/i_B6TFYjks.jpg  37953   FleWqlK2W1ZmEgAatAEcm1gpR0kC    15156329464034474   image/jpeg  0
f20180111090619/i_N9eITqj3.jpg  38437   Fui8g5OrJh0GQqZzT9wtepfq99lJ    '''
注意:
将字符串切片,切片后的结果保存在列表当中!
解题方法一:
使用字符串分割的方式,分布将图片格式和图片大小分离出来。
#将处理过的数据存放在字典中
log_dict = {}#字符串的每一行是一张图片的信息,这时候就要考虑怎么样把整个字符变成一行一行的,分别来处理,根据换行符\n切割
#根据\n来切割,保存在log_list的这个列表中
log_list = log.split("\n")
for one in log_list:  if one == "":continue  #如果发现空元素,则结束本次循环,进行下一次循环else:#根据制表符\t切割image_list = one.split("\t")#切割完成后图片大小是列表中下标为1的元素,下标为0的元素是文件名,我们需要的是图片格式,所以要再次切割拿出图片格式#图片大小images_size = int(image_list[1])#图片类型images_type = image_list[0].split('.')[1]#如果图片类型已经存在于字典,那就根据图片类型,取出其所对应的值,做同类型累加if images_type in log_dict:log_dict[images_type] += images_sizeelse:log_dict[images_type] = images_size
print(log_dict)
解题方法二:
使用正则表达式将字符串中的关键字进行匹配提取。
images = {}
import re #导入正则表达式方法a = re.compile(r'\.(.\D+)\s(\d*)')#compile 函数的参数,就是正则表达式字符串。image_list = a.findall(log)#compile对象的 findall 方法返回所有匹配的子串,放在一个列表中。
for one in image_list:image_type = one[0]image_size = int(one[1])if image_type in images:images[image_type] += image_sizeelse:images[image_type] = image_size
print(images)
eg2:
请写一个程序
找出str1中所有str2中不存在的人名,并且找出str2中所有str1中不存在的人名
str1 = '''
熊宁
杰益王伟伟青芳玉琴
焦候涛
莫福
杨高旺
唐欢欢
韩旭
'''
str2 = '''
焦候涛
熊宁
玉琴骆龙韩旭
杨高旺杰益莫福伟伟李福
'''注意:使用函数做
def name_list(name):#定义函数name1=[]name_list1 = name.splitlines()#对字符串进行切片(splitlines()方法默认按照换行和空格进行切片)for i in name_list1:#对切片后的结果进行遍历,切片后的结果默认保存在列表中#对列表遍历时,将每个元素进行处理,将元素前后的空格去除掉。使用i.strip()方法。if i.strip() == '':continue #不满足条件时,此次遍历结束else:name1.append(i.strip())return name1 #调用函数时,将会返回列表name1
s1= set(name_list(str1))#  调用函数,并将返回的结果转换成集合形式
s2= set(name_list(str2))
a = s1-s2 #两个集合求差集即可
b = s2 -s1
print(a)
print(b)
eg3:
有如下的字符串,记录了三国人物的名字和年龄
ageTable = '''诸葛亮, 28刘备, 48刘琦, 25赵云, 32张飞, 43关羽, 45
'''
请写一个程序将其中 30岁以上和以下的人分别打印出来,类似这样
大于等于30岁的人有:
刘备
赵云
张飞
关羽
小于30岁的人有:
诸葛亮
刘琦
name_list = ageTable.splitlines() #对字符串进行切片处理
newname_list =[]
a1=[]
a2=[]
for name in name_list:if name.strip()=='':continueelse:name1=name.strip().split(',') #将遍历出来的元素再次切片,结果保存在列表中newname_list.append(name1) #切片后的列表添加到新的列表中if int(name1[1])>=30: #判断元素年龄,需要转换数据类型a1.append(name1[0])else:a2.append(name1[0])
print(f'大于等于30岁的人有:')
for name in a1:print(name)
print(f'小于等于30岁的人有:')
for name in a2:print(name)

python3中字符串的切片练习相关推荐

  1. 一篇文章助你理解Python3中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系和一篇文章助你理解 ...

  2. python3中字符串编码常见种类_Python基础篇—标准数据类型—String字符串编码问题...

    我要开始写String编码问题了...脑壳疼.. 在String字符串的第一篇末尾有留一个坑,就是关于中文字符串编码.整个编码的故事说起来都是很费劲的,我也只能把我所知道的梳理整理一下,在日常敲码过程 ...

  3. jq 截取指定字符前_Python中字符串的切片

    切片方法适用于字符串,列表,元组 切片使用索引值来限定范围,从一个大的字符串中切出小的字符串. 列表和元组都是有序的集合,都能够通过索引值获取到对应的数据 字典是一个无序的集合,是使用键值对保存数据 ...

  4. 关于 Python2 和 Python3 中的 Unicode 问题。

    写在之前 字符编码问题几乎是会跟随我们整个编程生涯的一大魔障,一不小心各种玄学的问题就会接踵而至,防不胜防,尤其是对初学者来说,碰到编码问题简直是就是加快了踏上从入门到放弃的传送带. 鉴于我公众号的读 ...

  5. Python中字符串的一些操作

    Python中字符串的切片 >>> str1 = 'I love you' >>> str1[:6] 'I love' Python中字符串的索引 >> ...

  6. python3中编解码、进制、字节、bytes及爬虫中经常遇到的编码问题的总结

    摘要 内容可能有些繁杂,我尽量排版清晰,描述通俗易懂,不说为了别人,后期我自己也要看的. 内容是我查阅诸多资料汇总的,如有不对之处,欢迎告知. 侵删 首先说一下:ASCII Unicode UTF-8 ...

  7. python中字符串切片取奇数_Python中的字符串切片(截取字符串)的详解

    Python中的字符串切片(截取字符串)的详解 字符串索引示意图 字符串切片也就是截取字符串,取子串 Python中字符串切片方法 字符串[开始索引:结束索引:步长] 切取字符串为开始索引到结束索引- ...

  8. python格式化字符串语法_详解Python3 中的字符串格式化语法

    一.旧式的字符串格式化 % 操作符 参考以下示例: >>> name = "Eric" >>> "Hello, %s." % ...

  9. python列表切片得到的是列表还是字符串_python中列表的切片问题 python arry怎么取列切片...

    python 列表切片赋值 对列表切片进行赋值,解释器处理时是直接将序列中的内容赋值过去的 ,还切片赋值,得到的与原变量无关,是两个不同的对象:直接赋值,引用的是同一个对象. 请看下例 切片赋值. a ...

最新文章

  1. Go 知识点(15)— 切片长度和容量
  2. Tomcat高级部分-使用特定模块和软件反向代理请求到后端tomcat实现负载均衡和session保持...
  3. 505天,240,000字,我总结了Spring Security 的学习曲线,免费送给大家
  4. 情人节——微信朋友圈浓浓爱意的9张拼图(HTML版本)
  5. 使用Phpstorm实现远程开发
  6. 关于myBatis的问题There is no getter for property named 'USER_NAME' in 'class com.bky.model.实例类'
  7. selenium svg标签定位元素
  8. 希腊数学符号与读音对照表
  9. python open() 方法 No such file or directory: 应该怎么解决
  10. Sublime Text 3 注册码失效(被移除)解决方法
  11. html5.0用什么编程语言,HTML5.0,求好心人详解,谢谢
  12. java 线程类注入失败_如何在多线程中注入bean?!
  13. qt三维曲线_Qt 的许可类型、主要版本以及安装步骤
  14. 【转】临界区、互斥对象
  15. flowable 配置自定义表单_SpringBootSecurity学习(03)网页版登录添加自定义登录页面...
  16. 微信公众号制作简单线上预约系统,公众号预约系统怎么做
  17. kindle刷机ttl_kindle咕咪版如何刷成普通kindle版本?
  18. 各自然带代表植被_十种常见自然带所对应的植被 十种常见自然带所对应的气候类型...
  19. 基于STM32的简易数码相册
  20. windows10 win10 此电脑 文件夹 隐藏

热门文章

  1. 【学习笔记】关于苹果Safari浏览器不支持sessionStorage的问题
  2. 初学Python,爬取王者荣耀英雄介绍及皮肤下载
  3. 折腾日记:树莓派如何硬盘、u盘启动 (usb boot)
  4. Java 使用IE浏览器下载文件,文件名乱码问题
  5. 【2021-09-22 修订】【梳理】计算机网络:自顶向下方法 附录一 物理层与通信基础
  6. 【2012Esri中国用户大会讲座】ArcGIS 10.1 for Server 安全机制(4)访问内容限制
  7. 计算机教学反思杂文,政治教学反思教学随笔
  8. Google Cloud Next '17主题演讲的5个重要要点
  9. 大智慧新一代 分笔数据提取工具 更新
  10. 初玩OpenWRT之编译TP-Link WR841N V8固件