Introdução
Em Python, é frequentemente necessário verificar se uma lista está contida em outra lista. Isso pode ser um pouco complicado, especialmente se a ordem dos elementos nas listas não importa. Neste desafio, você escreverá uma função que verifica se os elementos de uma lista estão contidos em outra lista, independentemente da ordem.
Contenção de Lista (List Containment)
Escreva uma função is_contained_in(a, b) que recebe duas listas como argumentos e retorna True se todos os elementos da lista a estão contidos na lista b, independentemente da ordem. Caso contrário, a função deve retornar False.
Para resolver este problema, você pode usar a seguinte abordagem:
- Iterar por cada valor único na lista
a. - Para cada valor, verificar se ele aparece mais vezes na lista
ado que na listab. - Se algum valor aparecer mais vezes na lista
ado que na listab, retornarFalse. - Se todos os valores na lista
aaparecerem na listabpelo menos tantas vezes quanto aparecem na listaa, retornarTrue.
def is_contained_in(a, b):
for v in set(a):
if a.count(v) > b.count(v):
return False
return True
is_contained_in([1, 4], [2, 4, 1]) ## True
Resumo
Neste desafio, você aprendeu como verificar se uma lista está contida em outra lista, independentemente da ordem. Você escreveu uma função que recebe duas listas como argumentos e retorna True se todos os elementos da lista a estão contidos na lista b, independentemente da ordem.