Python 使用元素名从列表中提取项目

Python 使用元素名从列表中提取项目,python,list,Python,List,如何使用元素名从python中的列表中提取项目 例如: ["apple:10","orange:5","mango:2","banana:20"] 从这张单子上我想要一个苹果。是否有方法使用项目的部分名称搜索项目 我想只搜索apple:10apple这应该行得通,但字典可能是更好的方法 l = ["apple:10","orange:5","mango:2"

如何使用元素名从python中的列表中提取项目

例如:

["apple:10","orange:5","mango:2","banana:20"]
从这张单子上我想要一个苹果。是否有方法使用项目的部分名称搜索项目


我想只搜索
apple:10
apple

这应该行得通,但字典可能是更好的方法

l = ["apple:10","orange:5","mango:2","banana:20"]

def get_item(l, n):
    for x in l:
        if x.startswith(n + ":"):
            return x
        return None

get_item(l, 'apple')
如果要获取所有以“apple”开头的项目,请使用:

[x for x in l if x.startswith('apple')]

使用“apple:”而不是“apple”将有助于避免使用诸如“AppleUICE:10”之类的术语。

如果搜索字符串是唯一的,可以尝试使用字典。这些不是元素“名称”和“值”的组合,而是简单字符串的简单列表。当然,你可以循环检查它的内容,并按顺序检查每个项目。如果你希望所有项目都包含<代码>[x代表l中的x,如果“苹果”在x中]那么为什么不在匹配字符串中包含
呢?如果水果中包含“菠萝”,则在
中使用
会导致另一个问题。
for element in ["apple:10","orange:5","mango:2","banana:20"]:
    if 'apple:' in element:
          print(element)