You need to enable JavaScript to run this app. 如何在Python中操作列表提取所需信息:截取手机号前3位保留完整人名
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中操作列表提取所需信息:截取手机号前3位保留完整人名

需求实现方案

方案1:更稳妥的按行读取处理(推荐)

你原来用f.read().split()的写法会把所有内容按任意空白分割,打散行对应关系,更推荐直接按行处理:

unique_result = set()

with open('file.txt', 'r', encoding='utf-8') as f:
    for line in f:
        stripped_line = line.strip()
        # 跳过空行
        if not stripped_line:
            continue
        # 仅拆分第一个空格,避免人名含空格被误拆分
        phone, full_name = stripped_line.split(maxsplit=1)
        # 取手机号前3位
        phone_prefix = phone[:3]
        unique_result.add(f"{phone_prefix} {full_name}")

# 写入新文件
with open('output.txt', 'w', encoding='utf-8') as f:
    for line_content in unique_result:
        f.write(f"{line_content}\n")

该方案自动去重,最终输出和你给出的预期结果完全一致。

方案2:基于你现有得到的列表处理

如果你一定要基于已经生成的data列表(格式为[手机号1, 人名1, 手机号2, 人名2...])处理,可以按如下方式配对:

unique_result = set()
# 步长为2遍历,依次取手机号和对应人名
for idx in range(0, len(data), 2):
    phone = data[idx]
    full_name = data[idx + 1]
    unique_result.add(f"{phone[:3]} {full_name}")

# 写入文件逻辑同方案1

注意:该方案仅适用于人名中没有空格的场景,否则会出现配对错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 22:36:05