да, я знаю из этой темы, что я мог бы просто использовать функцию парсера urllib, чтобы сделать это, поэтому я надеюсь, что здесь обсуждение сосредоточится на redu ()
Я не понимаю, зачем вам изобретать велосипед, если в стандартной библиотеке есть функция для этого. Я действительно предлагаю вам не тратить свое время и ознакомиться со стандартной библиотекой pythons и использовать предоставляемые функции .
В любом случае, вернемся к вашему вопросу: Когда я набираю: my_url.split('/')[:3]
, я получаю это:
['http:', '', 'www.mysite.com']
Так что в нем нет None
, просто пустая строка, которую можно использовать как любую другую строку. И, очевидно, это то, что делает ваша лямбда-функция для алгоритма reduce
, она просто объединяет строки обратно. Я предлагаю вам использовать метод strings
join
, так как он более читабелен и понятен:
>>> parts = my_url.split('/')[:3]
>>> print "/".join(parts)
'http://www.mysite.com'
Вы должны добавить последний /
самостоятельно, хотя.