我使用的是Python 3.5.1,我有这个列表:
if(pos == strlen(pesquisa))
break; // this is where you stop the loop instead of doing what you want to do when you find the word.
}
列表可以有两个以上的子列表,但子列表总是有3个元素。每个子列表中的变量在整个列表中是唯一的。我想在整个列表中搜索“我”,然后将特定子列表中包含“me”的每个值作为不同的值分配给其他人。 在示例中,它应该打印:
my_list = [["could", "you", "please"], ["help", "me", "?"]]
我还想删除一个子列表,这些怎么可能呢?到目前为止,我有这个:
>>>help
>>>me
>>>?
答案 0 :(得分:2)
您可以使用lambda & filter & in
print filter(lambda x: "me" in x, my_list)
或使用__contains__
方法。
print filter(lambda x: x.__contains__("me"), my_list)
它返回包含特定元素
的所有嵌套列表那么你可以迭代它们并从外部列表中删除它们
for a in list(filter(lambda x: "me" in x, my_list)):
my_list.remove(a)
答案 1 :(得分:0)
在您更新后续评论之后,似乎您正在寻找这个:
In [1]: my_list = [["could", "you", "please"], ["help", "me", "?"]]
In [2]: for sublist in my_list:
...: if "me" in sublist:
...: var1, var2, var3 = sublist
...: do_something_with(var1, var2, var3)
请注意,只要在子列表中找到var1, var2
,var3
和"me"
就会反弹到不同的值。这就是为什么我明确地补充说你在进入下一个子列表之前想要对这些变量做些什么。
只有2条评论:在你原来的my_list
中,你的一个字符串错过了一个结束语并尽量不影响python的内置:我已将list in my_list
替换为sublist in my_list
。