首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Python中的年份与其他数字分开

将Python中的年份与其他数字分开
EN

Stack Overflow用户
提问于 2015-04-17 02:10:18
回答 2查看 45关注 0票数 0

给定一个字符串列表,是否可以将年份与其他数字分隔,如

代码语言:javascript
复制
ll = [700, 138.44, 5, 1862, 39.8, 30, 205.0, 30, 98.1, 180, 10, 6, 640, 29, 46.53, 45, 114, 10, 231, 2002, 2002, 176.47, 10]

Python中有什么方法可以将2002和1862年与其他数字区分开来吗?

谢谢!

具体来说,我想选择任何四位数的年份,这对人类来说是显而易见的。而700是一个灰色区域,假设我们把它当作一个正常的数字。

EN

Stack Overflow用户

发布于 2015-04-17 02:24:15

如果您想将年份从列表中分离出来,那么假设年份总是4个数字,而年份是列表中仅有的4个数字。

代码语言:javascript
复制
ll = [700, 138.44, 5, 1862, 39.8, 30, 205.0, 30, 98.1, 180, 10, 6, 640, 29, 46.53, 45, 114, 10, 231, 2002, 2002, 176.47, 10]
for i in ll:
    if len(str(i)) == 4 and str(i).isalnum():
        print i

这个会打印出来

代码语言:javascript
复制
1862
2002
2002

你的名单上有2002年两次。如果愿意,可以过滤副本。I正在将列表中的项转换为字符串,以便检查字符串长度。我还确保所有字符都是数字,以避免像98.1这样的数字打印。它确保不考虑带有小数的数字,因为我在检查字符串长度。

另一种方法是将数字转换成字符串一次而不是两次,这将提高长列表的速度。

代码语言:javascript
复制
for i in (str(num) for num in ll):
    if len(i) == 4 and i.isalnum():
        print i

我使用的是生成器(str(num) for num in ll),这样也可以节省内存。如果你想要更容易阅读的东西,你可以这样做。

代码语言:javascript
复制
ll = (str(i) for i in ll)
for i in ll:
    if len(i) == 4 and i.isalnum():
        print i
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29689030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档