如何找到与给定字符串匹配的字符串类型项(包含在子列表中)的所有索引?

时间:2019-06-04 19:01:25

标签: python

我有一个在其子列表中包含字符串类型项的列表。

mylist = [["Apple"],["Apple"],["Grapes", "Peach"],["Banana"],["Apple"], ["Apple", "Orange"]]

我想获取仅具有Apple的子列表的索引。

这是我到目前为止尝试过的:

get_apple_indices = [i for i, x in enumerate(list(my_list)) if x == "Apple"]
print(get_apple_indices)

实际输出:

[]

预期输出:

[0,1,4]

2 个答案:

答案 0 :(得分:1)

也许将每个元素与单个项目列表SelectMany进行比较,而不是将['Apple']对象与list进行比较。

string

答案 1 :(得分:0)

假设由于某些原因您确实确实需要匹配字符串而不是列表,这是一个解决方案。

来自just-so-snippets

match_string = "Apple"
get_matching_indices = [i for i, x in enumerate(list(mylist)) if len(x) == 1 and x[0] == match_string]

您可以看到它检查了长度为1的子列表(如果只有“ Apple”,那么它的长度必须为1),然后检查是否第一个(唯一)项与子列表匹配。字符串。