J'ai le code écrit ci-dessous:fonction qui prend une longueur variable comme argument et retourne tuple
def convTup(*args):
t = set([])
for i in args:
t.add(i)
return tuple(t)
print convTup('a','b','c','d')
print convTup(1,2,3,4,5,6)
print convTup('a','b')
Sortie prévue:
('a', 'b', 'c', 'd')
(1, 2, 3, 4, 5, 6)
('a', 'b')
mais je m'y suis sortie comme ci-dessous:
('a', 'c', 'b', 'd')
(1, 2, 3, 4, 5, 6)
('a', 'b')
Pourquoi l'ordre des éléments n'a-t-il changé que pour ('a','b','c','d')
? Comment puis-je imprimer le tuple dans le même ordre que l'entrée donnée?
1) votre indentation est désactivée 2) pourquoi ne pas juste 'retourner tuple (args)'? –
@JohnColeman Si votre paramètre est une liste, tuple (args) soulèverait un TypeError – Vinny
indentation corrigée & return tuple (args) donnera la sortie attendue. Mais je veux savoir pourquoi l'ordre change seulement pour ('a', «b», «c», «d»). – RVR