Le groupe J'ai deux listes comme ceci: p> et j'ai Cette fonction: p> ici si je le fais comme ceci: p> Il va toujours fonctionner à jamais sans aucune sortie. P> C'est mon solOUTION, cela fonctionne, mais je ne peux pas la mettre en réponse: p> Le groupe code> Picks Up
pp code> d'un autre grand groupe. Je souhaite que le programme dise si des éléments de
pp code> existaient dans
rr code>, je veux refuser la fonction de sélection et appelez à nouveau. Si non ajoute
RR code> liste avec
pp code>.
rr code> contient 7 qui existaient dans
pp code>, doit être refusé. Mais le problème qu'il est toujours accepté. et
rr code> toujours ajouté par ce mauvais
pp code>. p>
rr1 = [[1,2], [3,4], [5,6], [7,8]]
pp1 = [[7,9], [10, 11]]
# if any(p in rr for p in pp):
# print("cant append") #this will send it back to the function to pick up new pp
# elif any((i in p for i in range(len(pp))) in (j in rr for j in range(len(rr))) for p in pp ):
# print("cant append")
# else:
# rr.extend(pp)
def is_true(pp , rr):
for i in pp:
for j in rr:
if any(p in j for p in i):
return False
return True
def ext (pp , rr , tt ):
if tt == True:
rr.extend(pp)
else:
print("cant append")
tt = is_true(pp1, rr1)
ext(pp1, rr1, tt)
print(rr1)
6 Réponses :
Je pense que je sais ce que vous demandez, mais je ne suis pas sûr. Parce que la question est formelle maladroite, pour moi quand même.
Je pense que vous voulez utiliser des ensembles. Les ensembles sont une structure de données dans Python qui contrôlent des listes d'éléments uniques. Il semble donc que vous souhaitiez que des choses dans RR ne soient dans RR, s'ils ne sont pas déjà en pp? P>
Donc, j'utiliserais un ensemble pour pp. Créer un ensemble de tout dans PP: < / p> exécutant ce code: p> Parce que je trouve la question un peu gênante, je viens de jeter une éventuelle solution. Ce n'est pas complet, mais j'espère que cela montre l'avantage principal de l'utilisation d'un
NameError: Nom CODE> INCOMING` n'est pas défini.` - Pas sûr de ce que
entrant code> est censé être dans cet exemple?
Serait gentil de votre part si vous avez fait courir le code: Capable au moins. Bonne idée d'utiliser des ensembles!
Assez juste, oui, je l'ai rendu runnable.
Je ne suis pas tout à fait sûr de ce que vous êtes après. ITERTOOLS aplatit simplement la "liste de contrôle", il est donc plus facile de travailler avec les chiffres. Ensuite, simplement itérer sur ceux qui vérifient les paires Si vous ne voulez pas ignorer une paire, ignorez simplement la partie Ignorer.
Mais peut-être que c'est quelque chose que vous pouvez travailler avec: rr code> contiennent des nombres non valides. Conservez ces paires invalides dans
Ignorer code>. P>
Mais cela garantira que [7, 8] code> n'appartient pas à vos résultats - si, par exemple, votre
pp code> ressemblait à ceci:
pp = [[7 , 9], [8, 11]] code> p> p>
Si vous enregistrez des nombres entiers à checkin des deux listes de listes, vous pouvez faire quelque chose comme:
Il ne vous donnera que true code> ou
false code> s'il y a des occurrences des deux côtés, mais c'est une fonction soignée :)
Merci. Peut supprimer le bool () code> emballage et renvoyer un ensemble des éléments communs ..
Vrai, Altho, il n'imprimera que le nombre qui existe dans les deux cas. Encore une fois, il est très difficile de savoir ce que OP veut atteindre ici. Donc, en fonction de la demande raffinée plus tard, cela pourrait être une solution non valide si OP ou toute autre d'autre nécessite une liste nettoyée d'éléments non déclenchés de l'une ou l'autre des listes. Encore une fois, bonne utilisation de définir code>, et c'est élégant comme l'enfer. J'espère que les gens ne votent pas ce beau morceau de code plus tard si OP change la question hehe.
Voici une autre approche [ Si une valeur dans rr code> apparaît dans
pp code>, aussi,
pp code> ne sera pas ajouté, sinon
pp code> sera ajouté. p>
J'ai approché de cette façon: résultat: p>
C'est ma solution, ça marche: 2- la logique d'acceptation ou de refus de ce groupe, puis envoyez le résultat à la vue: P>
1- La fonction de groupe qui choisit les éléments en groupes: def lession_group (request):
results=[]
parr = list(students.objects.all())
pick = []
picked = []
final = []
for i in range(4):
pick = groupp (parr, 2)
while pick in final or pick[::-1] in final or any(p in picked for p in pick):
pick = groupp (parr, 2)
final.append(pick)
picked.extend(pick)
pendant que h == j: code> si cela devient
true code>, il reste
vrai code>; Ni
H code> non
j code> est mis à jour dans. Peut-être que
si code> (Disclaimer: je ne comprends pas votre question).
Je suppose que vous ne faites pas référence à
[7,9] dans RR code>, car dans l'exemple - ce n'est pas le cas? À en juger par le code, je suppose que vous souhaitez voir si un numéro dans la liste intérieure existe dans l'une des listes intérieures dans
RR code> par exemple,
7 code> est dans La dernière liste de
rr code>, et qui devrait renvoyer
vrai code>?
@Torxed exactement ce que je veux.
@Austine j'ai essayé le si, toujours le même problème
Je n'ai aucune idée de ce que votre résultat final devrait ressembler. Parce que dans la question
pp code> est ajouté à
rr code>. Et
SEQ code> n'est jamais défini. Mais
pp code> est remplacé pendant que vous êtes itération dessus, il est donc difficile pour nous de deviner. Mais j'ai laissé un exemple de travail où vous obtenez une liste de résultats à la fin, je ne sais pas si c'est ce que vous recherchiez.
Quelle est la fonction code> code> et que renvoie-t-il?