首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python列表推导式(2)_Python自学第二十四节

Python列表推导式(2)_Python自学第二十四节

作者头像
张旭博客
发布2022-12-27 14:49:24
发布2022-12-27 14:49:24
3790
举报
文章被收录于专栏:zxbkzxbk

把列表中的所有数据拼接成一个字符串(有不同数据类型),' '.join()方法只可对文本型元素进行拼接,若有数值型则无法进行拼接。以下两种方法可以针对不同类型元素进行拼接:

使用 map()函数

代码语言:javascript
复制
>>> a = [0, 1, 2, 3, 4, 'a', 'b', 'c']
>>> ''.join(map(str,a))
'01234abc'

使用列表推导式

代码语言:javascript
复制
>>> ''.join([str(i) for i in a  ])
'01234abc'

if 进行过滤内容

如下在一堆数值中找出大于0的数值:

代码语言:javascript
复制
>>> a = [1.2,1.3,2,-1,-2,6,9]
>>> [i for i in a if i > 0]   #加上if过滤,输入大于0的元素
[1.2, 1.3, 2, 6, 9]

从列表中找出.py和.sh为后缀的元素:

代码语言:javascript
复制
>>> a = ['test1.py','test2.sh','test3.py','test4.txt']
>>> [i for i in a if i.endswith('.py')]
['test1.py', 'test3.py']

从列表中找出.py和.sh为后缀的元素:把要需要找出的元素定义为一个元组()

代码语言:javascript
复制
>>> [i for i in a if i.endswith(('.py','.sh'))]   #如把.py和.sh放在一个元组
['test1.py', 'test2.sh', 'test3.py']

练习:

编写一个脚本,验证用户输入的IP地址是否合法。 应考虑用户输入的IP地址中可能会有空格。 IP地址应采用点分十进制的形式。 IP地址的每一组数应在0到255之间。

代码语言:javascript
复制
#!/usr/bin/python3
ip = input().strip().split('.')   #strip作用是去除误输入的空格,split作用是以.作为分割符进行分割
key = [i for i in ip if 0<=int(i)<=255]   #作用是限制每个IP元素的范围在0~255,if判断i的值是不是在0~255之间,int把转换为数值型
if len(key) == 4:   #如果key元素的长度为4
  print('yes')   #则输出yes
else:   #其他
  print('no')   #则输出no
---优化后的代码
#!/usr/bin/python3
ip = input().strip().split('.')   
key = [i for i in ip if 0<=int(i)<=255]
print('yes') if len(key) == 4 else print('no')   #用三元表达精简代码
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 map()函数
  • 使用列表推导式
  • if 进行过滤内容
  • 练习:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档