Waarom is het string.join(lijst) in plaats van list.join(string)?
Dit heeft me altijd verward. Het lijkt alsof dit mooier zou zijn:
my_list = ["Hello", "world"]
print(my_list.join("-"))
# Produce: "Hello-world"
Dan dit:
my_list = ["Hello", "world"]
print("-".join(my_list))
# Produce: "Hello-world"
Is er een specifieke reden waarom het zo is?
1661
3
Dat komt omdat elke iterable kan worden samengevoegd, niet alleen lijsten, maar het resultaat en de "joiner" zijn altijd strings.
Bijvoorbeeld:
Omdat de
join()
methode in de string klasse zit, in plaats van de list klasse?Ik ben het ermee eens dat het er grappig uitziet.
Zie http://www.faqs.org/docs/diveintopython/odbchelper_join.html:
Voornamelijk omdat het resultaat van een
someString.join()
een string is.De sequentie (lijst of tuple of wat dan ook) komt niet in het resultaat voor, alleen een string. Omdat het resultaat een string is, is het zinvol als een methode van een string.