Détails
Pourquoi est-ce string.join(list) au lieu de list.join(string) ?
Cela m'a toujours dérouté. Il semble que ce serait plus agréable :
my_list = ["Hello", "world"]
print(my_list.join("-"))
# Produce: "Hello-world"
que ça :
my_list = ["Hello", "world"]
print("-".join(my_list))
# Produce: "Hello-world"
Y a-t-il une raison spécifique pour laquelle il en est ainsi ?
1661
3
C'est parce que n'importe quel itérable peut être joint, pas seulement les listes, mais le résultat et le "joiner" sont toujours des chaînes de caractères.
Par exemple :
Parce que la méthode
join()
est dans la classe string, au lieu de la classe list ?Je suis d'accord, ça a l'air bizarre.
Voir http://www.faqs.org/docs/diveintopython/odbchelper_join.html :
Principalement parce que le résultat d'une
someString.join()
est une chaîne de caractères.La séquence (liste ou tuple ou autre) n'apparaît pas dans le résultat, juste une chaîne. Parce que le résultat est une chaîne de caractères, cela a du sens en tant que méthode d'une chaîne de caractères.