给定一个字符串列表,是否可以将年份与其他数字分隔,如
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是一个灰色区域,假设我们把它当作一个正常的数字。
发布于 2015-04-17 02:24:15
如果您想将年份从列表中分离出来,那么假设年份总是4个数字,而年份是列表中仅有的4个数字。
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这个会打印出来
1862
2002
2002你的名单上有2002年两次。如果愿意,可以过滤副本。I正在将列表中的项转换为字符串,以便检查字符串长度。我还确保所有字符都是数字,以避免像98.1这样的数字打印。它确保不考虑带有小数的数字,因为我在检查字符串长度。
另一种方法是将数字转换成字符串一次而不是两次,这将提高长列表的速度。
for i in (str(num) for num in ll):
    if len(i) == 4 and i.isalnum():
        print i我使用的是生成器(str(num) for num in ll),这样也可以节省内存。如果你想要更容易阅读的东西,你可以这样做。
ll = (str(i) for i in ll)
for i in ll:
    if len(i) == 4 and i.isalnum():
        print ihttps://stackoverflow.com/questions/29689030
复制相似问题