You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计文件中长度为10位且以1开头的整数?

统计10位且以1开头的数字数量

你的代码存在几处明显问题,直接导致运行失败:

  1. 语法错误:if(len(n)==10: 缺少闭合括号,正确写法为 if len(n) == 10:
  2. 判断逻辑错误:startswith(1) 需传入字符串参数'1'而非整数1,且无需遍历字符,直接判断整个字符串的开头即可
  3. 函数逻辑不完整:当数字长度不等于10位时,函数没有返回值,应返回False

修正后的代码

import re

with open(r"C:\Desktop\file.csv") as file:
    # 读取所有数字字符串
    data = file.read()
    numbers = re.findall(r'\d+', data)

def filter_valid(n):
    return len(n) == 10 and n.startswith('1')

# 过滤并统计符合条件的数字数量
valid_count = len(list(filter(filter_valid, numbers)))
print(valid_count)

更简洁的写法(无需filter函数)

import re

with open(r"C:\Desktop\file.csv") as file:
    numbers = re.findall(r'\d+', file.read())
    count = sum(1 for num in numbers if len(num) == 10 and num.startswith('1'))
    print(count)

关键说明

你担心的「数字是整数而非字符串」并非核心问题——从文件读取的内容本身是文本,re.findall提取出的是字符串形式的数字,直接通过字符串操作判断长度和开头比转成整数更高效(还能避免超大整数的潜在问题)。不管是.txt还是.csv文件,只要数据格式是每行一个数字(或数字以非数字字符分隔),以上代码都能正常处理。

内容的提问来源于stack exchange,提问作者kyblueraider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:05:14