如何从索引中找到特定值?

时间:2019-03-01 14:25:05

标签: python python-3.x

让我们说snapshot is: Snap (-LZtTuFSKMhhXFwyT-7K) { Description = "Ciclabile chiusa"; Id = 0; Latitude = "44.50139187990401"; Longitude = "11.33592981426992"; } snapshot is: Snap (-LZtUV8MOxVrvPnEfi4g) { Description = "Lavori in corso"; Id = 1; Latitude = "44.5013918797401"; Longitude = "11.335929814371545"; } snapshot is: Snap (-LZtV7sJJrOQjAimszTm) { Description = "Pericoli sulla ciclabile"; Id = 2; Latitude = "44.50139187974223"; Longitude = "11.335929814367324"; } input(fag) == informasjonsvitenskap中的值,如果是真的,我希望它在karak中打印具有与INFO相关的元素的值,例如INFO100,INFO132和INFO233。如果list(FagKode)是økonomi,我希望它在karak中打印值,则代码为ECON。

我是python的新手,请告诉我我是否解释得不好。

我的下一个问题是,我只会打印与确切值相关的元素,例如如果input(fag),则仅打印INFO100 AND INFO132,如果input(emnenivå) == 100,仅打印INFO233,

input(emnenivå) == 200

首先感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

您可以为此使用列表理解:

karak = [['INFO100','C'],['INFO132','B'],['INFO233','C'],['ECON218','A']]

info_items = [item for item in karak if item[0].startswith("INFO")]
econ_items = [item for item in karak if item[0].startswith("ECON")]

print(info_items)
print(econ_items)

关于第二部分:如果emnenivå小于100,应该返回什么?您是否有带有两位数字的INFO项目?

编辑: 要仅将INFO与级别100或200匹配,可以使用emnenivå中的第一位数字作为区分因素。然后,通过将其转换为字符串并使用index = 0来获得第一个emnenivå位,如下所示:str(emnenivå)[0]。示例代码:

emnenivå = 123
print("\nExact match for emnenivå={}:".format(emnenivå))
info_items_exact = [item for item in karak if item[0].startswith("INFO{}".format(str(emnenivå)[0]))]
print(info_items_exact)
emnenivå = 200
print("\nExact match for emnenivå={}:".format(emnenivå))
info_items_exact = [item for item in karak if item[0].startswith("INFO{}".format(str(emnenivå)[0]))]
print(info_items_exact)