Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 17, 2011 15:01:41

zinger
От:
Зарегистрирован: 2011-09-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск в массиве, удаление элементов

День добрый.
Помогите пожалуйста с такой проблемой:
Есть массив и URL

result =
url=http://yandex.ru/123.html

Нужно удалить из него элементы, в которых встречается домен из URL и в которых нет http, это можно сделать на питоне? В интернете совсем мало мануалов по питону, на PHP сделать такое легче, но нужно на питоне, помогите пожалуйста.

Пробовал просто вывести элементы нужные для сохранения таким образом:

import re
from urlparse import parse

result =
domen=urlparse(url).netloc
for (k, v) in enumerate(result):
if ((len(re.findall(domen, result))==0) and (re.findall('http', result)>0)):
print result

Почему-то не выводит ничего и работает секунд 7 :(

В данном случае из result должны удалиться все элементы массива кроме 'http://google.ru'



Отредактировано (Сен. 17, 2011 15:13:55)

Офлайн

#2 Сен. 17, 2011 15:21:29

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

поиск в массиве, удаление элементов

print filter(lambda x:x[:7]=='http://' and not domen in x, result)

Офлайн

#3 Сен. 17, 2011 15:51:59

zinger
От:
Зарегистрирован: 2011-09-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск в массиве, удаление элементов

o7412369815963, огромнейшее спасибо, всего одна строчка кода, я в шоке :o

А есть в Python такая функция чтобы можно было из элементов массива удалить все повторные элементы? Как в PHP например array_unique()?

Например есть массив result:
result=
result=
result=

Нужно из каждого массива удалить повторный элемент, в результате должно остаться:
result=
result=
result=

Есть такая функция удаляющая повторы? Нужно циклом проходить и чистить каждый массив на повтор?



Отредактировано (Сен. 17, 2011 15:52:22)

Офлайн

#4 Сен. 17, 2011 16:04:30

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

поиск в массиве, удаление элементов

list(set(result))



Офлайн

#5 Сен. 17, 2011 16:33:13

zinger
От:
Зарегистрирован: 2011-09-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск в массиве, удаление элементов

o7412369815963
Объясните пожалуйста что такое lambda x:x, почитал здесь мануал по lambda, но не понял что делает lambda x:x :( Объясните пожалуйста в двух словах.

apologize828, попробовал вывести
print list(set(result));
TypeError: unhashable type: ‘list’

это в цикле надо делать?

Я со вчерашнего дня начал изучать Python :( мануалов толковых по нему почему-то совсем мало, благо этот форум нашёл :)

Подскажите ещё есть ли такая функция как implode() в PHP, чтобы совмещать элементы массива в строку с задаными разделителями…
Например массив:
result=

Нужно чтобы превратился в текст:
text='http://www.zcarot.com/
http://allsunnybeach.ru
http://www.zcarot.com/123
http://www.zcarot.com/12345'

Есть такая функция?



Отредактировано (Сен. 17, 2011 16:33:48)

Офлайн

#6 Сен. 17, 2011 17:01:17

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

поиск в массиве, удаление элементов

>>>но не понял что делает lambda x:x
анонимная функция. берется срез аргумента. читай про срезы.

>>>попробовал вывести …
IDLE питона запусти введи и посмотри результат. все должно работать.

>>>Я со вчерашнего дня начал изучать Python :( мануалов толковых по нему почему-то совсем мало, благо этот форум нашёл :)
доку еще никто не отменил.

>>>Подскажите ещё есть ли такая функция как implode() в PHP, чтобы совмещать элементы массива в строку с задаными разделителями…
смотри функцию join.



Офлайн

#7 Сен. 17, 2011 19:08:44

zinger
От:
Зарегистрирован: 2011-09-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск в массиве, удаление элементов

apologize828, спасибо большое за помощь :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version