从嵌套的第二个列表中的一个列表中查找元素

时间:2018-12-10 22:59:13

标签: python

我有两个带有字符串值的列表,list1 = ['a','g','f','e']list2 = [['c','v','d'], ['a','d','e'], ['g','h']]。我想编写一个代码,仅当list2嵌套列表中的第一个(0th)元素与list1中的第一个(0th)元素不同时,才将list2附加到list1中。

这是我编写的代码,没有错误,但是没有达到我想要的效果

list1 = ['a','g','f','e']
list2 = [['c','v','d'], ['a','d','e'], ['g','h']]

print('List 1: ', list1)
print('List 2: ', list2)

for nest in list2:
    if list1[0] != nest[0]:
        list2.append(list1)
        print(list2)        
    else:
        print("Not added")

2 个答案:

答案 0 :(得分:2)

您可以使用内置的all来检查子列表的所有前几个元素是否与list1的第一个元素不同:

if all(l[0] != list1[0] for l in list2):
    list2.append(list1)

答案 1 :(得分:1)

也许这会有所帮助:

list1 = ['a','g','f','e']
list2 = [['c','v','d'], ['a','d','e'], ['g','h']]

print("List 1: ", list1)
print("List 2: ", list2)

for nested_list in list2:
    if nested_list[0] == list1[0]:
        print("Not added")
        break
else:
    list2.append(list1)

print(list2)

如果循环在没有else的情况下结束,则执行for循环之后的break块。例如,您可以在Why does python use 'else' after for and while loops?阅读有关for-else的更多信息。

相关问题