J'ai la liste suivante.
step 1: [[3,4,5],'or',[5,6,7],'or',[8,9,10],'and',[10,11]] step 2: [[3,4,5],'or',[5,6,7],'or' ,[10]] step 3: [[3,4,5],'or',[5,6,7,10]] step 4: [[3,4,5,6,7,10]]
3 Réponses :
Vous auriez besoin de faire deux fonctions, une pour "et" et une pour "ou". Voici ma suggestion pour 'ou': pour 'et': p> alors, vous devez simplement avoir quelques une sorte de fonction qui boucle via la liste, et s'il trouve un "et", il exécute la fonction et code> sur l'élément avant de lui et de l'élément après elle, la même pour le ou < / code> fonction. Cela ressemble à ce que vos devoirs de python, donc le reste, je vous laisserai. P> p>
Voici ma tentative!
Cette approche utilise la récursivité. La déclaration d'impression peut être utilisée pour vérifier chaque étape si j'ai compris le problème comme prévu. Certaines lacunes de ce code sont les deux appels à POP (non élégant) et le double de la boucle. Mais sur la base de ma compréhension du problème, il semble faire le travail. P>
def main(op):
print(op)
if len(op) > 1:
for i in range(0, len(op)):
if op[i] == "and":
new_ele = set(op[i-1]).intersection(set(op[i+1]))
op[i-1] = new_ele
op.pop(i)
op.pop(i)
main(op)
for i in range(0, len(op)):
if op[i] == "or":
new_ele = set(op[i-1]).union(set(op[i+1]))
op[i-1] = new_ele
op.pop(i)
op.pop(i)
print(op)
main(op)
main(op)
print(op)
J'ai compris ma propre façon de le mettre en œuvre. Merci pour vous tous de travailler dur à ce sujet. Pls passerai aussi à ma solution et laissez-moi savoir s'il semble bien.
algorithme comme suit:
1.Enparate toute la liste en 2. Un pour les opérandes (liste Lovop) et autres pour les opérateurs (liste OP). P> 3. P> 4. P> def unionlist(lst):
result=set()
for i in lst:
result=result | set(i)
return(list(result))
S'il vous plaît, ajoutez votre propre code, ce que vous avez essayé et où vous êtes coincé
Qu'est-ce que tu as essayé jusque-là?
En fait, je travaille juste sur cela. aucune idée de la procédure à suivre.
Je suis un débutant en programmation Python
Il semble que vous essayez de faire des intersections et des syndicats. Pour cela, il y a la construction intégrée
SET < / code>type.En Python, 'et', 'ou' sont des opérateurs booléens.Vous avez peut-être besoin d'utiliser ensemble.
Mais je dois appliquer une logique pour suivre l'ordre de fonctionnement