Комментарии 58
в избранное. хорошая работа.
но "Dive Into Python" уже почитал чуть-чуть)))
но "Dive Into Python" уже почитал чуть-чуть)))
так продолжайте. оно того стоит :)
жаль только перевод обрывается слишком рано...
жаль только перевод обрывается слишком рано...
так у меня образование переводчика есть... :) при чем основное...
я литературу, в основном, на английском и читаю)))
я литературу, в основном, на английском и читаю)))
А не хотите доперевести, если время есть? ;)
Уже одну утилитку для работы написал на питоне(или пайтоне?) после того, как ты начал писать о нем.
Спасибо, продолжай в том же духе!
Спасибо, продолжай в том же духе!
не поверите! аж две. длинной в целых 17 и 21 строчку. так удобненько, просто нереально. только очень медленно получается
а если серьезно - я не уловил повода вашего сарказма.
а если серьезно - я не уловил повода вашего сарказма.
автор молодец, продолжай в том же духе!
спасибо
только сегодня делал на питоне парсер :)
правда меня доканал синтаксис вроде этого
dic = {}
dic['key1'] = {}
dic['key2'] = {}
dic['key1']['key3'] = 5
dic['key2']['key4'] = 6
явное обьявление словарем в строках 2-3 меня доканывает :) непривычно
только сегодня делал на питоне парсер :)
правда меня доканал синтаксис вроде этого
dic = {}
dic['key1'] = {}
dic['key2'] = {}
dic['key1']['key3'] = 5
dic['key2']['key4'] = 6
явное обьявление словарем в строках 2-3 меня доканывает :) непривычно
Насколько правильно делать так:
Вместо использзования цикла
s={1:'one',2:'two'}
for i in s:
print i
Вместо использзования цикла
for i in s.keys():
print i
для класса dict определен метод __iter__ возвращающий итератор по ключам.
так что, принципиально ничем не отличается.
так что, принципиально ничем не отличается.
вполне правильно
как и так:
вообще, я думаю что наиболее правильно как раз использовать .iterkeys(), .itervalues() и .iteritems(), хотя это мое предположение
как и так:
>>> for k, v in s.iteritems():
... print k, v
...
1 one
2 two
вообще, я думаю что наиболее правильно как раз использовать .iterkeys(), .itervalues() и .iteritems(), хотя это мое предположение
Ой, в рот мне "пайтон"!
Создание с помощью списковых включений. В данном случае мы берем кубы всех нечетных чисел от 1 до 20. Опечатка - от 0 до 19.
в принципе, ниче так. правда, на мой взгляд, немного скучновато.
я бы еще настоятельно рекомендовал добавить сюда такие полезности как sorted, перегон из списка пар в словарь и наоборот, а также map/zip и т.п.
я бы еще настоятельно рекомендовал добавить сюда такие полезности как sorted, перегон из списка пар в словарь и наоборот, а также map/zip и т.п.
Написать программу, которая получив на входе произвольный список удалит из него все повторяющиеся элементы.
самый простой пример:
самый простой пример:
my_list = [1,2,3,4,1,2,6,9,2,3,8,4,5,76,2,5,6,7]
unique_list = list(set(my_list))
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 76]
мне кажется, порядок элементов имеет значение...
ну скажем про порядок речи не шло. так что как первый вариант это подходит :)
хотя про функцию set речь не шла
но вариант сохраняющий порядок - остается на повестке дня :)))
хотя про функцию set речь не шла
но вариант сохраняющий порядок - остается на повестке дня :)))
как это можно сделать "в лоб":
s=[1,2,3,2,3,4,5,1,3,0]
c=[]
for i in s:
if i not in c:
c.append(i)
интересно почему такой вариант:
a = [1,2,3,4,1,2,6,9,2,3,8,4,5,76,2,5,6,7]
b = [ e for i,e in enumerate(a) if e not in a[i+1:] ]
print b
не сохраняет порядок? (хотя по идее должен).
у меня в результате [1, 9, 3, 8, 4, 76, 2, 5, 6, 7]
a = [1,2,3,4,1,2,6,9,2,3,8,4,5,76,2,5,6,7]
b = [ e for i,e in enumerate(a) if e not in a[i+1:] ]
print b
не сохраняет порядок? (хотя по идее должен).
у меня в результате [1, 9, 3, 8, 4, 76, 2, 5, 6, 7]
не должен. смотри, ты проверяешь первый элемент. он есть в хвосте и ты его пропускаешь.
тоесть ты оставляешь только последние вхождения уникальных элементов.
я сделал так:
[x for i, x in enumerate(l) if l.index(x) == i]
но это тоже жусть.
тоесть ты оставляешь только последние вхождения уникальных элементов.
я сделал так:
[x for i, x in enumerate(l) if l.index(x) == i]
но это тоже жусть.
а можно расписать словами как расшифровывается эта конструкция ?:)
был бы очень признателен
был бы очень признателен
ну, l.index(x) - возвращает индекс первого вхождения х в l.
enumerate(l) возвращает итератор, выдающий пары значений вида (i, l[i]), где i=0..len(l).
таким образом мы идем по списку l, получая из него по-очереди пары индекс-значение, и если индекс элемента совпадает с индексом его первого вхождения в l, то мы его оставляем в "результате".
синтаксис "списочных генераторов" я распишу позже...
enumerate(l) возвращает итератор, выдающий пары значений вида (i, l[i]), где i=0..len(l).
таким образом мы идем по списку l, получая из него по-очереди пары индекс-значение, и если индекс элемента совпадает с индексом его первого вхождения в l, то мы его оставляем в "результате".
синтаксис "списочных генераторов" я распишу позже...
да, конечно.
фактически, мы строим новый список, итерируя по старому: включаем новый элемент в список (левая часть, та что до оператора for) если выполнено некоторое условие (правая часть, та что if).
итак, enumerate возвращает список пар вида (индекс-елемента, значение-элемента). мы итерируем по нему и проверяем, если индекс текущего элемента равен индексу первого вхождения этого элемента в исходный список, дополняем новый список текущим элементом.
фактически, мы строим новый список, итерируя по старому: включаем новый элемент в список (левая часть, та что до оператора for) если выполнено некоторое условие (правая часть, та что if).
итак, enumerate возвращает список пар вида (индекс-елемента, значение-элемента). мы итерируем по нему и проверяем, если индекс текущего элемента равен индексу первого вхождения этого элемента в исходный список, дополняем новый список текущим элементом.
Вот так сохраняет и в прошлом случае тоже сохранял, только с конца.
a = [1,2,3,4,1,2,6,9,2,3,8,4,5,76,2,5,6,7]
b = [ e for i,e in enumerate(a) if e not in a[:i] ]
print b
a = [1,2,3,4,1,2,6,9,2,3,8,4,5,76,2,5,6,7]
b = [ e for i,e in enumerate(a) if e not in a[:i] ]
print b
родил решение в одну строчку, но получился жесткач какой-то... страшно показывать :)
Подглядываете в Pleac? :)
Тупой и банальный алгоритм, сохраняющий порядок :)
>>> my_list = [1,2,3,4,1,2,6,9,2,3,8,4,5,76,2,5,6,7]
>>> ulist = []
>>> for i in my_list:
... if i not in ulist:
... ulist.append(i)
...
>>> ulist
[1, 2, 3, 4, 6, 9, 8, 5, 76, 7]
>>> my_list = [1,2,3,4,1,2,6,9,2,3,8,4,5,76,2,5,6,7]
>>> ulist = []
>>> for i in my_list:
... if i not in ulist:
... ulist.append(i)
...
>>> ulist
[1, 2, 3, 4, 6, 9, 8, 5, 76, 7]
а django будете обучать?
"В данном случае мы берем кубы всех нечетных чисел от 0 до 19."
...
"[1, 9, 25, 49, 81, 121, 169, 225, 289, 361]"
Но это квадраты, а не кубы. Поправьте, пожалуйста :)
...
"[1, 9, 25, 49, 81, 121, 169, 225, 289, 361]"
Но это квадраты, а не кубы. Поправьте, пожалуйста :)
import urllib
urls = open(«urls.txt», «r»)
for url in urls.readlines():
#tab#outfile = open(url.rstrip()+«.htm», «w»)
#tab#outurl=urllib.urlopen(«http://»+url.rstrip())
#tab#for line in outurl.readlines():
#tab##tab#outfile.write(line)
#tab#outurl.close()
#tab#outfile.close()
urls = open(«urls.txt», «r»)
for url in urls.readlines():
#tab#outfile = open(url.rstrip()+«.htm», «w»)
#tab#outurl=urllib.urlopen(«http://»+url.rstrip())
#tab#for line in outurl.readlines():
#tab##tab#outfile.write(line)
#tab#outurl.close()
#tab#outfile.close()
% — скажите пожалуйста что этот знак означает в Пиайтоне? В примере он указывается, а что делает не пойму ???
Подскажите как пользоваться count (x) для определения одинаковых элементов в строке?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Основы Python — кратко. Часть 3. Списки, кортежи, файлы.