
Kill me pls
12.06.2016
19:07:18
Нужно удалить лишние и сделать чтобы был один столбец
Есть решение?

Zart
12.06.2016
19:08:01
обычный способ - конверсия в сет и обратно в лист, но это херит порядок

Kill me pls
12.06.2016
19:08:18
Порядок потом привести сортировкой можно

Google

Kill me pls
12.06.2016
19:08:21
Это не важно.

Zart
12.06.2016
19:08:28
если оригинальный порядок важен, тогда цикл

Janek
12.06.2016
19:08:36
Через фор

Zart
12.06.2016
19:08:38
list(sorted(set(l)))

Kill me pls
12.06.2016
19:08:44
А полный код?

Andrey
12.06.2016
19:10:07

Zart
12.06.2016
19:10:27
output = []
seen = set()
for item in mylist:
if item not in seen:
output.append(item)
seen.add(item)
если через цикл, а не сет

Kill me pls
12.06.2016
19:10:48
А как применять? Допустим нужен файл "1" в папке /home

Zart
12.06.2016
19:11:05
по поводу регэкспов - их много разных типов

Andrey
12.06.2016
19:11:10

Zart
12.06.2016
19:12:13
если операции над файлами, то можно банальным сорт+уник обойтись

Марк
12.06.2016
19:13:05
Нет) Это технология.

Google

Zart
12.06.2016
19:13:13
регулярные выражения - это один из алгоритмов обработки строк

Kill me pls
12.06.2016
19:13:46
bash: output: command not found
bash: scrypt.py: line 2: syntax error near unexpected token `('
bash: scrypt.py: line 2: `seen = set()'

Zart
12.06.2016
19:13:46
а модуль ре - лишь один из его реализаций
а зачем ты суешь башу питоний код?

Kill me pls
12.06.2016
19:16:02

Марк
12.06.2016
19:16:03
И еще он вроде как до конца не совместим с POSIX

Zart
12.06.2016
19:16:20
забудь про позикс

Марк
12.06.2016
19:16:49
Ч0 это я должен за него забыть?

Zart
12.06.2016
19:17:08
потому что в большинстве случаев оно бесполезное

Марк
12.06.2016
19:17:20
ога. grep -P бесполезное. Да

Zart
12.06.2016
19:17:25
даже в позиксе 2 или 3 варианта регэкспов
никогда в жизни не пользовался grep -P
-E хватает за глаза

Марк
12.06.2016
19:18:27
Я вот пользовался. Так как -Е не хватало

Zart
12.06.2016
19:18:47
ну вот ты уже знаешь что у гну грепа есть -G, -E, -P
далеко не во всех юниксах гнутный греп

Марк
12.06.2016
19:19:23
Я в бубунтах.

Zart
12.06.2016
19:19:46
сочувствую твоему горю
BUGS
Having two kinds of REs is a botch.

Марк
12.06.2016
19:20:13
проблема grep -E в том, что оно не понимает нормально квантификаторы

Google

Zart
12.06.2016
19:20:22
цитата из regex(7)

Марк
12.06.2016
19:20:41
Не, можно perl юзнуть, но демонов не нужно суммонить

Zart
12.06.2016
19:21:20
а в питоне вообще свои регэкспы, перл-лайк, но ни разу не pcre
плюс re достаточно кривой, когда речь идёт о серьезной работе с юникодом

Марк
12.06.2016
19:22:07
Да, я уже пяток раз обосрался, пытаясь с перла вытащить привычное на пайтон. От чего у меня пердак пару районов обогревал

Zart
12.06.2016
19:22:41
имхо полновесные перловые регэкспы с бактрейсом не нужны
на питоновом ирц канале как-то летала охуительнейшая ссылка про реализацию замены регэкспа, работавшую на несколько порядков(!) быстрее

Марк
12.06.2016
19:24:48
Может помнишь, был в пайтоновской группе день регекспоебаства, где народец решал весь день задачки с того сайта, что я скинул. Вот там оказались нужны. И потом еще выяснилось, что модуль re все конструкции не поддерживает

Zart
12.06.2016
19:25:05
а в питоне вообще свои регэкспы, перл-лайк, но ни разу не pcre
"все конструкции" чего?

Марк
12.06.2016
19:25:42
Чет вроде "?>" типо такого.
Традиционные регекспы основаны на работе конечных автоматов. Есть еще другие реализации.

Марк
12.06.2016
19:26:56
В книге О` Релли по регекспам вконце рассказывается об альтернативах, но я забил читать

Zart
12.06.2016
19:26:58
о, вспомнил
https://swtch.com/~rsc/regexp/regexp1.html
вот как раз про то, что ранние реализации использовали конечные автоматы, но потом перестали
ERE в гавке как видно по приведенным графикам как раз конечные автоматы и юзают
если же говорить о питоне, то in, find, replace, (r)partition, (r)split и слайсы - на порядок быстрее регэкспа для тривиальной обработки
если же нужна сложная обработка юникода - лучше сразу брать https://pypi.python.org/pypi/regex

Марк
12.06.2016
19:32:40

Google

Марк
12.06.2016
19:34:26
если же говорить о питоне, то in, find, replace, (r)partition, (r)split и слайсы - на порядок быстрее регэкспа для тривиальной обработки
а вот тут интересно. Когда мне пришлось парсить не так давно совсем пиздецовое дерьмо, меня дико кумарило количество разнообразных функций в пайтоне. Я никак не мог это пояснить, кроме дебилизма, мол, да сделали бы уже одну общую функцию с паком флагов, че за..??! А теперь становится более менее понятно

Zart
12.06.2016
19:35:09
чо
нахуя такая функция нужна?

Марк
12.06.2016
19:35:48
Перл-вей

Zart
12.06.2016
19:35:54
если сильно хочется - можешь считать такой "функцией" модуль string...
в большинстве языков обычно есть свои наборы функций для работы со строками
обычно это поиск подстроки, вычленение кусков строк, склейка, повторы, конверсия, форматирование
питон изначально использовал модуль стринг для этого, но потом быстро перенесли всё это в методы строкового типа

Admin
ERROR: S client not available

Марк
12.06.2016
19:40:06
Кстати, в пайтоне есть какой-то лаконичный вариант аналога "="x100 перла?

Zart
12.06.2016
19:40:18
'='*100
$ python1.0
Python 1.0.1 (Mar 21 2014)
Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
>>> dir('')
Traceback (innermost last):
File "<stdin>", line 1
TypeError: dir() argument must have __dict__ attribute
>>> ''.lower
Traceback (innermost last):
File "<stdin>", line 1
TypeError: attribute-less object

Марк
12.06.2016
19:41:33
Блеать? Так просто. А я долго искал
Думал, как-то в format надо засовывать

Zart
12.06.2016
19:43:06
можно через формат, указав ширину поля, символ заполнения, и выводя ''
но это несколько геморройно
хм... в питоне 1.5 у строк еще методов не было
а в 1.6 уже есть

Марк
12.06.2016
19:44:33
Некрофил

Zart
12.06.2016
19:44:47
порой интересно отследить когда та или иная фича появилась в языке
а порой это нужно чтобы быть уверенным что твой код будет поддерживаться на нужной версии

Google

Марк
12.06.2016
19:45:37
У чувака вчера код на 2.7 поехал в 16.04 бубунте на urlib2
Но он спать пошел, так что не до конца ясно. Мож сам затупил
Если есть 16 ЛТС могу закинуть

Zart
12.06.2016
19:46:32
а причем тут вообще убунта?

Марк
12.06.2016
19:47:08
В 16 по умолчанию тройка пайтона идет, если не ошибаюсь. Мб чет косо запустил

Zart
12.06.2016
19:47:37
везде python ссылается на второй, кроме маргиналов, в роже арча


Марк
12.06.2016
19:48:34
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 429, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 447, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1228, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/usr/lib/python2.7/urllib2.py", line 1201, in do_open
r = h.getresponse(buffering=True)
File "/usr/lib/python2.7/httplib.py", line 1136, in getresponse
response.begin()
File "/usr/lib/python2.7/httplib.py", line 453, in begin
version, status, reason = self._read_status()
File "/usr/lib/python2.7/httplib.py", line 417, in _read_status
raise BadStatusLine(line)
httplib.BadStatusLine: ''
http://pastebin.com/MbNbW2g0
Сам код
У мну на 14 бубунте ездит


Zart
12.06.2016
19:49:29
трейсбак ни о чем не говорит интересном
а паста протухла
[root@ene ~]# docker images ubuntu | head
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/ubuntu xenial d53d8719646f 3 months ago 118.7 MB
docker.io/ubuntu xenial-20160303.1 d53d8719646f 3 months ago 118.7 MB
docker.io/ubuntu 16.04 d53d8719646f 3 months ago 118.7 MB
docker.io/ubuntu wily-20160302 3c751ae18eea 3 months ago 135.8 MB
docker.io/ubuntu 15.10 3c751ae18eea 3 months ago 135.8 MB
docker.io/ubuntu wily 3c751ae18eea 3 months ago 135.8 MB
docker.io/ubuntu trusty-20160302 56063ad57855 3 months ago 187.9 MB
docker.io/ubuntu 14.04.4 56063ad57855 3 months ago 187.9 MB
docker.io/ubuntu latest 56063ad57855 3 months ago 187.9 MB
я подозреваю что проблема в сервере, который возвращает 100


Марк
12.06.2016
19:53:21
Бля. Карочи, там обычный код с urlib2/urlopen(url)
try:
download = urllib2.urlopen('http://www.python.org/')
except Exception as e:
print e
Это я уже try докидывал
Но у мну всё ровно. Его код от 2014
Кароч, я ебал пересаживаться на 16 в ближайший год


Zart
12.06.2016
20:00:14
root@124c5bf9e238:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04 (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
UBUNTU_CODENAME=xenial
root@124c5bf9e238:/# python2.7 -c "import urllib2; urllib2.urlopen('http://www.python.org/')"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 467, in error
result = self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 654, in http_error_302
return self.parent.open(new, timeout=req.timeout)
File "/usr/lib/python2.7/urllib2.py", line 429, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 447, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1241, in https_open
context=self._context)
File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>
Эта группа больше не существует