检查包含列表,元组的子列表中是否存在列表

时间:2018-10-21 10:55:54

标签: python list tuples enumerate

我有一个包含子列表的列表,并且子列表包含其他列表和类似这样的元组

[[(1.0, 1.5), [2, 2], (1.5, 1.0)], [(1.1428571343421936, 0.28571426868438721), [1, 0], (0.5, 0.0)], [(0.66666668653488159, 0.0), [0, 0], [0, 1], (0.5, 1.25)]]

我想搜索子列表中是否存在[2,2],并打印包含[2,2]的子列表的索引。例如。包含[2,2]的子列表是0

我尝试使用以下代码,但是它以递增的方式提供了所有元素。

for index, value in enumerate(flat_list):
    if value == [xpred,ypred]:
        print(index)

请提出一些替代方案!

2 个答案:

答案 0 :(得分:1)

尝试一下

l = [[(1.0, 1.5), [2, 2], (1.5, 1.0)], [(1.1428571343421936, 0.28571426868438721), [1, 0], (0.5, 0.0)], [(0.66666668653488159, 0.0), [0, 0], [0, 1], (0.5, 1.25)]] 

is_in_l = [l.index(pos) for pos in l if [2,2] in pos]
if is_in_l:
    print('List Available at {} position'.format(is_in_l[0]))
else:
    print('List not present')

答案 1 :(得分:1)

以下一些代码可能会有所帮助:

x = [[(1.0, 1.5), [2, 2], (1.5, 1.0)],
     [(1.1428571343421936, 0.28571426868438721), [1, 0], (0.5, 0.0)],
     [(0.66666668653488159, 0.0), [0, 0], [0, 1], (0.5, 1.25)]]

looking_for = [2,2]

for i in range(len(x)):
  for j in range(len(x[i])):
    if x[i][j] == looking_for:
        print([i,j])

我做了一个嵌套的for循环。外循环遍历列表x中的所有项目。这些项目本身就是列表。第二个for循环在子列表中迭代。最后,检查元组或列表是否与您要查找的内容相对应,并打印出要查找的元组或索引。

希望这能回答您的问题,并祝您编程愉快!

相关问题