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

Python中元组列表处理求助:提取字符串内首个目标单词

解决方法:提取元组字符串中的首个单词

别担心那个u'标记!它是Python 2里用来表示Unicode字符串的语法——在Python 3里,所有字符串默认都是Unicode类型,所以这个标记完全不影响你处理内容,把它当成普通字符串就行~

针对你的需求,这里有两种简单的实现方式:

方法一:字符串分割法(格式固定时首选)

如果每个字符串的格式都是数字*"单词" + ...这种固定模式,直接用字符串分割就能快速提取目标:

# 你的原始列表
original_list = [(2, u'0.267*"sugar" + 0.266*"bad"'), (0, u'0.222*"father" + 0.222*"likes"')]

# 列表推导式提取首个单词
result = [item[1].split('*"')[1].split('"')[0] for item in original_list]

print(result)  # 输出: ['sugar', 'father']

原理很简单:

  1. 用*"分割字符串,得到的第二个元素就是"sugar" + ...这样的片段
  2. 再用"分割这个片段,第一个元素就是我们要的单词

方法二:正则表达式法(格式灵活时首选)

如果字符串的格式可能有变化(比如引号是单引号、符号位置不同),用正则表达式匹配会更稳健:

import re

original_list = [(2, u'0.267*"sugar" + 0.266*"bad"'), (0, u'0.222*"father" + 0.222*"likes"')]

# 匹配第一个被双引号包裹的内容
result = [re.search(r'"([^"]+)"', item[1]).group(1) for item in original_list]

print(result)  # 输出: ['sugar', 'father']

正则表达式"([^"]+)"的含义是:匹配双引号,然后捕获所有不是双引号的字符,直到遇到下一个双引号——这样就能精准提取第一个被引号包裹的单词。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:42:44