Sie doppelte Tupelelemente vermeiden kann, während die Liste zu erzeugen. Fügen Sie einfach ein if
:
def fun2(x, y):
result = []
for a in range(x+1):
for b in range(y+1):
if a != b:
result.append((a,b))
return result
Dies könnte auch kurz und bündig als Liste Verständnis geschrieben mehr werden:
result = [(a, b) for a in range(x+1) for b in range(y+1) if a != b]
Eine weitere Option ist die Verwendung itertools.product()
:
from itertools import product
result = [(a, b) for a, b in product(range(x+1), range(y+1)) if a != b]
Entfernen Artikel nachträglich ist auch möglich mit einem Listenverständnis:
result = [pair for pair in result if pair[0] != pair[1]]
, die eine neue Liste ohne die doppelten Elemente erstellt und dann an result
erneut bindet. Sie können die Liste anstelle mit überschreiben:
result[:] = [pair for pair in result if pair[0] != pair[1]]
schreiben Sie Ihre erwartete Ausgabe –
Dieser erzeugt keine Duplikate – user1767754
@ user1767754: Ich thik nicht, dass es zu doppelten Paaren. Es geht um Paare mit doppelten Zahlen. Z.B. '(0, 0)'. –