Защо се използва string.join(list) вместо list.join(string)?
Това винаги ме е обърквало. Струва ми се, че това би било по-хубаво:
my_list = ["Hello", "world"]
print(my_list.join("-"))
# Produce: "Hello-world"
отколкото това:
my_list = ["Hello", "world"]
print("-".join(my_list))
# Produce: "Hello-world"
Има ли конкретна причина да е така?
1661
3
Това е така, защото всяка итерабилна таблица може да бъде обединена, не само списъци, но резултатът и "обединителят" винаги са низове.
Например:
Защото методът
join()
е в класа string, вместо в класа list?Съгласен съм, че изглежда смешно.
Вижте http://www.faqs.org/docs/diveintopython/odbchelper_join.html:
Преди всичко защото резултатът от
someString.join()
е низ.Последователността (списък, кортеж или каквото и да е друго) не се появява в резултата, а само като низ. Тъй като резултатът е низ, има смисъл да се използва като метод на низ.