我有两个带有字符串值的列表,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")
答案 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
的更多信息。