-2

我正在尝试编写一个代码,以便搜索将返回任何子列表,其中搜索的两个元素都是列表的前两个元素。基本上我想要如果我有

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

4

3 回答 3

2

我最终使用了 alok 方法的修改版本,将他的“d”替换为“sublist”,这样我以后可以打印并附加它。感谢所有的帮助!

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']
于 2013-10-04T00:32:57.817 回答
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
于 2013-10-03T05:09:17.347 回答
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")
于 2013-10-03T03:09:13.223 回答