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

如何用startswith结合lambda函数将列表中以B开头的字符串转为1

问题描述

现有如下数据:

49 873
50 575
51 487
52 B000XPZCXW
53 B098LPQ5LM
54 B09W5S7GFK

需要将所有以'B'开头的字符串值转换为整数1,预期输出:

49 873
50 575
51 487
52 1
53 1
54 1

要求使用startswith()结合lambda函数实现。

解决方案

可以用Python处理,通过拆分每行数据、lambda判断转换、格式化对齐来实现:

# 原始数据
data = [
    "49           873",
    "50           575",
    "51           487",
    "52    B000XPZCXW",
    "53    B098LPQ5LM",
    "54    B09W5S7GFK"
]

# 定义处理单行的lambda函数
process_line = lambda line: f"{parts[0]:<10} {1 if parts[1].startswith('B') else parts[1]:>8}" if (parts := line.split(maxsplit=1)) else line

# 遍历处理并输出
for line in data:
    print(process_line(line))

逻辑说明

  • split(maxsplit=1):将每行拆分为两个部分,避免内容中的空格干扰拆分结果
  • parts[1].startswith('B'):用startswith()判断第二个字段是否以'B'开头,符合条件则替换为1,否则保留原内容
  • 格式化字符串f"{parts[0]:<10} {value:>8}":保证输出格式和预期一致,左侧字段左对齐占10位,右侧字段右对齐占8位

运行代码后即可得到预期的输出效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:30:46