我正在尝试编写代码,以便搜索将返回任何子列表,其中搜索的两个元素都是列表的前两个元素。基本上我想要,如果我有
data = [[4,3,0],[4,7], [6,3], [9,2], [4,3]]
search = 4,3
返回
there [4,3,0]
there [4,3]
目前,我有
search = [4,3]
data = [[4,3,0],[4,7], [6,3], [9,2], [4,3]]
if search in data:
print("there", search)
else:
print("not there")
但这只会返回
there [4,3]
编辑:我还需要能够附加包含搜索的子列表。
感谢您的帮助。 干杯! 5813
答案 0 :(得分:2)
我最终使用了alok方法的修改版本,我将“d”替换为“子列表”,以便稍后打印并附加它。谢谢你的帮助!
search = [4,3]
data = [[4,3,0],[4,7], [6,3], [9,2], [4,3]]
for sublist in data:
if search == sublist[:len(search)]:
sublist.append("c")
print("there", sublist)
完全返回我想要的内容:
there [4,3,0,'c']
there [4,3,'c']
答案 1 :(得分:1)
使用for循环遍历每个子列表和Python数组切片,只比较您正在搜索的列表中的前两项。
search = [4,3]
data = [[4,3,0],[4,7], [6,3], [9,2], [4,3]]
for d in data:
if search == d[:len(search)]:
print("there", search)
else:
print("not there")
答案 2 :(得分:1)
其中一个解决方案是:
search = [4,3]
data = [[4,3,0],[4,7], [6,3], [9,2], [4,3]]
sublist = []
flag = False
for x in data:
flag = True
for v in search:
if v not in x:
flag = False
break
if flag:
sublist.append(x)
print "sublist : ", sublist