【问题标题】:Can someone to extract in specific group of words from each line有人可以从每行中提取特定的单词组吗
【发布时间】:2022-01-25 17:59:53
【问题描述】:

我有一个列表,其中存储了以下单词。我如何将 [ 和 ] 中的句子分开,例如在破折号 [0] 中,我需要分开的是周日简介:潘思与其他财富相遇。我想在每个组中这样做并存储它。 -

dash = ['{"Headlines": ["The Sunday Profile: Panth meets Wealth"]}\n', '{"Headlines": ["Wage no bar"]}\n']

我试过了-

 for line in f:
    text = line
            
    

print(text)

但只打印最后一行

【问题讨论】:

  • 你能分享一下预期的输出吗?
  • 请创建一个minimal reproducible example。你定义了dash但不使用它,那么f没有定义。
  • 首先,您的缩进是一团糟 - 从您分享的内容来看,print() 调用似乎在循环之外。假设f 实际上应该是dash,这会起作用,尽管首先将每个值分配给一个变量似乎没有什么意义,如果你所做的只是在之后立即打印它 - 你也可以打印line 本身

标签: python list split


【解决方案1】:

创建一个将字符串转换为字典并返回值的第一项的函数

import json
def get_first_item(s):
    return json.loads(s).values()[0][0]

然后将函数映射到列表中

for line in map(get_first_item, dash):
    print(line)

给予

The Sunday Profile: Panth meets Wealth
Wage no bar

【讨论】:

    【解决方案2】:
    from ast import literal_eval
    dash = ['{"Headlines": ["The Sunday Profile: Panth meets Wealth"]}\n', 
    '{"Headlines": ["Wage no bar"]}\n']
    for i in dash:
        print(literal_eval(i)["Headlines"])
    

    【讨论】:

      【解决方案3】:

      我建议您以后在 asking a good question 上遵循 StackOverflow 的指导。您还应该确保提供minimal, reproducible example

      话虽如此,假设 dash 列表中的值始终是 json 并且始终有一个标题,您可以使用列表推导来获取所有标题的新列表。

      import json
      
      dash = ['{"Headlines": ["The Sunday Profile: Panth meets Wealth"]}\n', '{"Headlines": ["Wage no bar"]}\n']
      
      headlines = [json.loads(x)["Headlines"][0] for x in dash]
      

      新变量headlines 将包含您要查找的所有项目。如果 dash 列表中的 Headlines 可以有多个值,我建议将它们保留为列表并从所述解决方案中删除 [0] 索引。

      【讨论】:

        猜你喜欢
        • 2012-02-05
        • 2020-10-08
        • 1970-01-01
        • 2022-01-22
        • 2012-03-26
        • 2018-05-11
        • 2018-12-24
        • 1970-01-01
        • 2017-06-27
        相关资源
        最近更新 更多