Python从lis中提取元素

2024-05-18 05:36:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有不同的产品名称,我想从中提取产品的数量,例如:

title = "Prażynki Roasty Ribs Lorenz, 45 g BBQ Hot&Spicy"

title = "Precelki Chrupkie Paluszki słone ; 49 + Chrupiące kulki gratis  Lajkonik, 130-200 g"

我可以把它转换成一个列表标题.拆分(" "). 提取数量(即第一个示例中的“45 g”,第二个示例中的“130-200 g”)并立即将其从标题中删除的简单方法是什么?我指的是一种方法,它足够灵活,可以处理放置在标题不同位置的金额(一次在中间,另一次在结尾等)

结果应该如下所示:

name = "Prażynki Roasty Ribs Lorenz, BBQ Hot&Spicy"
amount = "45 g"

name = "Precelki Chrupkie Paluszki słone ; 49 + Chrupiące kulki gratis  Lajkonik"
amount = "130-200 g"

Tags: 标题数量titleonehotbbqlorenzribs
2条回答

您可以使用正则表达式:

re.search(r"\b(\d+(?:\-\d+)?) g\b", title)

你可以找到“克”单位的索引,然后使用它。紧跟在单位前面的单词是数量的一部分(省略错误检查,如果输入字符串中没有g,或者如果它是输入字符串中的第一个单词,或者如果有多个g,您应该决定怎么做)。你知道吗

def f(s):
    words = s.split()
    unitIdx = words.index('g')
    name = words[:unitIdx - 1] + words[unitIdx + 1:]
    amount = words[unitIdx - 1] + ' ' + words[unitIdx]
    return ' '.join(name), amount

# Prints ('Prazynki Roasty Ribs Lorenz, BBQ Hot&Spicy', '45 g')
print f("Prazynki Roasty Ribs Lorenz, 45 g BBQ Hot&Spicy")

# Prints ('Precelki Chrupkie Paluszki stone ; 49 + Chrupiqce kulki gratis Lajkonik,', '130-200 g')
print f("Precelki Chrupkie Paluszki stone ; 49 + Chrupiqce kulki gratis Lajkonik, 130-200 g")

相关问题 更多 >