Я попытался получить домашний сайт URL-адреса. Во-первых, я использовал цикл for и достиг цели.Почему python reduce() пропускает элемент None?
home = ''
my_url = 'http://www.mysite.com/subdir/subdir2/index.html'
for item in my_url.split('/')[:3]:
home += item + '/'
print home
и я могу получить
'http://www.mysite.com/'
Тогда я сталкиваюсь уменьшить(), который я никогда не использовал раньше. Так что я получаю это выстрел, вот код:
my_url = 'http://www.mysite.com/subdir/subdir2/index.html'
home = ''
home = reduce(lambda x,y : x + y + '/',my_url.split('/')[:3])
print home
на этот раз я получил
'http:/www.mysite.com/'
ли это уменьшить не только ommit в None в нем Что объяснение результата?
да, я знаю из this topic, что я мог бы просто использовать функцию синтаксического анализа URLLIB, чтобы сделать это, так что я надеюсь, что здесь обсуждение будет сосредоточено на уменьшения()
вы должны использовать filter() для удаления None elements – sherpya
@sherpya Нет, я не хочу пропустить элемент None, я смущен тем, что функция reduce() пропускает элемент None и оставляет результат как «http: /www.mysite.com/ ', который должен быть «http://www.mysite.com/» –
'reduce' ничего не пропускает. Элемента 'None' нет. Где, по вашему мнению, это происходит? –