Форум сайта python.su
0
EdОсознал) классное решение)
Вот так нужно было:Попробуйте это осознать и показывайте чего вышло.types = [type1, type2, type3, type4, type5]
ty = []
for q in range(len(types)):
if 'Участ' in types[q]:
ty[q] = 1
#-*- coding: cp1251 -*- """ Created on Tue Jun 05 19:35:11 2012 @author: Dimazzzzzz """#/usr/bin/python import urllib import numpy as np rasnost = [] Data =[] Blitz1 = [] Stavka2 = [] Igrok2 = [] Typs = [[]] * 10 for J in xrange(803311466, 803311500): url='http://www.vezetmne.ru/auctions/'+str(J) urllib.urlretrieve(url=url, filename='COD.html') infile = open('COD.html') lines = infile.readlines() print J for i in range(len(lines)): line = lines[i]# так короче if 'cbid=alterStep' in line: rasnost.append(np.float(line.strip()[24:28])) if 'item_bigcell' in line: type1 = lines[i+1].strip()[10:40] type2 = lines[i+2].strip()[10:40] type3 = lines[i+3].strip()[10:40] type4 = lines[i+4].strip()[10:40] type5 = lines[i+5].strip()[10:40] if 'Аукцион завершен' in line: Data.append(line.strip()[-28:-19]) if 'Блиц-цена' in line: Origin = line.strip()[91:97] if '.' in Origin: Orig = Origin[0:5] else: Orig = Origin if '.' in Orig: AA = Orig[0:4] else: AA = Orig if '.' in AA: BB = AA[0:3] else: BB = AA if '.' in BB: Blitz1.append(np.int(BB[0:2])) else: Blitz1.append(np.int(BB)) if '<div class="history" id="history">' in line: Stavka1 = lines[i+3].strip()[21:50]# stavka.append(line.strip()[21:30]) Stavka2.append(np.float(Stavka1[0:Stavka1.find('р')])) Igrok1 = lines[i+3].strip()[21:-24] # А вот для ника возьмем с минусом Igrok2.append(Igrok1[Stavka1.find('р')+26:]) types = [type1, type2, type3, type4, type5] ty = [] for q in range(len(types)): if 'Участ' in types[q]: ty[q] = 1 # Не требует свободных лотов (+) elif 'Кажд' in types[q]: ty[q] = 2 # Ограниченное количество ставок (+) elif 'Лог' in types[q]: ty[q] = 3 #'Логины зашифрованы'(+) elif 'Днев' in types[q]: ty[q] = 4 #'Дневной'(+) elif 'Один' in types[q]: ty[q] = 5 #'С блефом' (+) - Внезапно ОО elif 'Аукцион для' in types[q]: ty[q] = 6 #' Для новичков' (+) elif 'Ставк' in types[q]: ty[q] = 7 #'На понижение' elif 'Фикс' in types[q]: ty[q] = 8 #'Фиксированная цена' elif '100' in types[q]: ty[q] = 9 #'100% скидка' elif 'Бесп' in types[q]: ty[q] = 10 #'Бесплатные ставки' else: ty[q] = 0
ty[q] = 6 #' Для новичков' (+) IndexError: list assignment index out of range
Офлайн
13
Это я немного того, запутал вас. Нужно добвлять в ty, вот так:
if ...:
ty.append(...
Отредактировано Ed (Июнь 9, 2012 21:56:03)
Офлайн
13
DimazzzzzzЭто еще не решение. Если у вас хватит упорства дойти до конца вы свой код не узнаете :)
Осознал) классное решение)
Офлайн
0
EdВозникла извечная моя проблема: он созраняет в переменных только последнее значение ty. Ну тоесть все как надо: в ty отображается 5 нужных цифр( у меня получилось:
Это я немного того, запутал вас. Нужно добвлять в ty, вот так:То есть на каждой итерации вы добавите в ty по одному значению. В итоге ty будет содержать 5 значений.if ...:
ty.append(...
>>> ty [1, 2, 3, 0, 0]
#-*- coding: cp1251 -*- """ Created on Tue Jun 05 19:35:11 2012 @author: Dimazzzzzz """#/usr/bin/python import urllib import numpy as np rasnost = [] Data =[] Blitz1 = [] Stavka2 = [] Igrok2 = [] Typs = [[]] * 10 for J in xrange(803311466, 803311500): url='http://www.vezetmne.ru/auctions/'+str(J) urllib.urlretrieve(url=url, filename='COD.html') infile = open('COD.html') lines = infile.readlines() print J for i in range(len(lines)): line = lines[i]# так короче if 'cbid=alterStep' in line: rasnost.append(np.float(line.strip()[24:28])) if 'item_bigcell' in line: type1 = lines[i+1].strip()[10:40] type2 = lines[i+2].strip()[10:40] type3 = lines[i+3].strip()[10:40] type4 = lines[i+4].strip()[10:40] type5 = lines[i+5].strip()[10:40] if 'Аукцион завершен' in line: Data.append(line.strip()[-28:-19]) if 'Блиц-цена' in line: Origin = line.strip()[91:97] if '.' in Origin: Orig = Origin[0:5] else: Orig = Origin if '.' in Orig: AA = Orig[0:4] else: AA = Orig if '.' in AA: BB = AA[0:3] else: BB = AA if '.' in BB: Blitz1.append(np.int(BB[0:2])) else: Blitz1.append(np.int(BB)) if '<div class="history" id="history">' in line: Stavka1 = lines[i+3].strip()[21:50]# stavka.append(line.strip()[21:30]) Stavka2.append(np.float(Stavka1[0:Stavka1.find('р')])) Igrok1 = lines[i+3].strip()[21:-24] # А вот для ника возьмем с минусом Igrok2.append(Igrok1[Stavka1.find('р')+26:]) types = [type1, type2, type3, type4, type5] ty = [] for q in range(len(types)): if 'Участ' in types[q]: ty.append(1) # Не требует свободных лотов (+) elif 'Кажд' in types[q]: ty.append(2) # Ограниченное количество ставок (+) elif 'Лог' in types[q]: ty.append(3) #'Логины зашифрованы'(+) elif 'Днев' in types[q]: ty.append(4) #'Дневной'(+) elif 'Один' in types[q]: ty.append(5) #'С блефом' (+) - Внезапно ОО elif 'Аукцион для' in types[q]: ty.append(6) #' Для новичков' (+) elif 'Ставк' in types[q]: ty.append(7) #'На понижение' elif 'Фикс' in types[q]: ty.append(8) #'Фиксированная цена' elif '100' in types[q]: ty.append(9) #'100% скидка' elif 'Бесп' in types[q]: ty.append(10) #'Бесплатные ставки' else: ty.append(0)
>>> Blitz1 [140, 140]
Отредактировано Dimazzzzzz (Июнь 9, 2012 22:16:38)
Офлайн
13
Это нормально. Переменные-то у вас тоже перезаписывались, так что все нормально. Мы просто грубо говоря засунули ваших 5 переменных в список. Теперь попробуйте понять, как от них дальше избавиться. То есть в том куске кода, где заполняется список Typs нужно работать со списком ty, а не с пятью переменными ty1-ty5. Если поймете как, то код опять заработает. Дерзайте!
Отредактировано Ed (Июнь 9, 2012 22:10:53)
Офлайн
13
А, понял в чем у вас проблема. Вы напрасно пытаетесь засунуть работу с Typs в этот же цикл. Этот цикл только для формирования списка ty. А дальше, имея уже готовый ty нужно работать с Typs. Вынесите этот код из цикла и все будет хорошо.
Офлайн
0
EdЯ пока Tips не добавлял, хотя действительно это поможет в будущем, я уже готов был так ошибиться)) Чтобы он добавлял все данные нужно было просто вынести его за цикл в самое начало, как и все остальные списки, пишет вот так:
А, понял в чем у вас проблема. Вы напрасно пытаетесь засунуть работу с Typs в этот же цикл. Этот цикл только для формирования списка ty. А дальше, имея уже готовый ty нужно работать с Typs. Вынесите этот код из цикла и все будет хорошо.
[6, 2, 10, 0, 0, 1, 2, 3, 0, 0]
#-*- coding: cp1251 -*- """ Created on Tue Jun 05 19:35:11 2012 @author: Dimazzzzzz """#/usr/bin/python import urllib import numpy as np rasnost = [] Data =[] Blitz1 = [] Stavka2 = [] Igrok2 = [] Typs = [[]] * 10 ty = [] for J in xrange(803311466, 803311500): url='http://www.vezetmne.ru/auctions/'+str(J) urllib.urlretrieve(url=url, filename='COD.html') infile = open('COD.html') lines = infile.readlines() print J for i in range(len(lines)): line = lines[i]# так короче if 'cbid=alterStep' in line: rasnost.append(np.float(line.strip()[24:28])) if 'item_bigcell' in line: type1 = lines[i+1].strip()[10:40] type2 = lines[i+2].strip()[10:40] type3 = lines[i+3].strip()[10:40] type4 = lines[i+4].strip()[10:40] type5 = lines[i+5].strip()[10:40] if 'Аукцион завершен' in line: Data.append(line.strip()[-28:-19]) if 'Блиц-цена' in line: Origin = line.strip()[91:97] if '.' in Origin: Orig = Origin[0:5] else: Orig = Origin if '.' in Orig: AA = Orig[0:4] else: AA = Orig if '.' in AA: BB = AA[0:3] else: BB = AA if '.' in BB: Blitz1.append(np.int(BB[0:2])) else: Blitz1.append(np.int(BB)) if '<div class="history" id="history">' in line: Stavka1 = lines[i+3].strip()[21:50]# stavka.append(line.strip()[21:30]) Stavka2.append(np.float(Stavka1[0:Stavka1.find('р')])) Igrok1 = lines[i+3].strip()[21:-24] # А вот для ника возьмем с минусом Igrok2.append(Igrok1[Stavka1.find('р')+26:]) types = [type1, type2, type3, type4, type5] for q in range(len(types)): if 'Участ' in types[q]: ty.append(1) # Не требует свободных лотов (+) elif 'Кажд' in types[q]: ty.append(2) # Ограниченное количество ставок (+) elif 'Лог' in types[q]: ty.append(3) #'Логины зашифрованы'(+) elif 'Днев' in types[q]: ty.append(4) #'Дневной'(+) elif 'Один' in types[q]: ty.append(5) #'С блефом' (+) - Внезапно ОО elif 'Аукцион для' in types[q]: ty.append(6) #' Для новичков' (+) elif 'Ставк' in types[q]: ty.append(7) #'На понижение' elif 'Фикс' in types[q]: ty.append(8) #'Фиксированная цена' elif '100' in types[q]: ty.append(9) #'100% скидка' elif 'Бесп' in types[q]: ty.append(10) #'Бесплатные ставки' else: ty.append(0) Typs[0].append((1 if ty[1] == 1 or ty[2] == 1 or ty[3] == 1 or ty[4] == 1 or ty[5] == 1 else 0)) Typs[1].append((1 if ty[1] == 2 or ty[2] == 2 or ty[3] == 2 or ty[4] == 2 or ty[5] == 2 else 0)) Typs[2].append((1 if ty[1] == 3 or ty[2] == 3 or ty[3] == 3 or ty[4] == 3 or ty[5] == 3 else 0)) Typs[3].append((1 if ty[1] == 4 or ty[2] == 4 or ty[3] == 4 or ty[4] == 4 or ty[5] == 4 else 0)) Typs[4].append((1 if ty[1] == 5 or ty[2] == 5 or ty[3] == 5 or ty[4] == 5 or ty[5] == 5 else 0)) Typs[5].append((1 if ty[1] == 6 or ty[2] == 6 or ty[3] == 6 or ty[4] == 6 or ty[5] == 6 else 0)) Typs[6].append((1 if ty[1] == 7 or ty[2] == 7 or ty[3] == 7 or ty[4] == 7 or ty[5] == 7 else 0)) Typs[7].append((1 if ty[1] == 8 or ty[2] == 8 or ty[3] == 8 or ty[4] == 8 or ty[5] == 8 else 0)) Typs[8].append((1 if ty[1] == 9 or ty[2] == 9 or ty[3] == 9 or ty[4] == 9 or ty[5] == 9 else 0))
Typs[0].append((1 if ty[1] == 1 or ty[2] == 1 or ty[3] == 1 or ty[4] == 1 or ty[5] == 1 else 0)) IndexError: list index out of range
Спасибо, счас буду исправлять
Отредактировано Dimazzzzzz (Июнь 9, 2012 22:53:34)
Офлайн
13
Ошибка потому, что индекс в списках начинается с нуля.
ty[5]
Отредактировано Ed (Июнь 9, 2012 22:51:21)
Офлайн
0
Ed
Ошибка потому, что индекс в списках начинается с нуля.не существует.ty[5]
#-*- coding: cp1251 -*- """ Created on Tue Jun 05 19:35:11 2012 @author: Dimazzzzzz """#/usr/bin/python import urllib import numpy as np rasnost = [] Data =[] Blitz1 = [] Stavka2 = [] Igrok2 = [] Typs = [[]] * 10 for J in xrange(803311466, 803311500): url='http://www.vezetmne.ru/auctions/'+str(J) urllib.urlretrieve(url=url, filename='COD.html') infile = open('COD.html') lines = infile.readlines() print J for i in range(len(lines)): line = lines[i]# так короче if 'cbid=alterStep' in line: rasnost.append(np.float(line.strip()[24:28])) if 'item_bigcell' in line: type1 = lines[i+1].strip()[10:40] type2 = lines[i+2].strip()[10:40] type3 = lines[i+3].strip()[10:40] type4 = lines[i+4].strip()[10:40] type5 = lines[i+5].strip()[10:40] if 'Аукцион завершен' in line: Data.append(line.strip()[-28:-19]) if 'Блиц-цена' in line: Origin = line.strip()[91:97] if '.' in Origin: Orig = Origin[0:5] else: Orig = Origin if '.' in Orig: AA = Orig[0:4] else: AA = Orig if '.' in AA: BB = AA[0:3] else: BB = AA if '.' in BB: Blitz1.append(np.int(BB[0:2])) else: Blitz1.append(np.int(BB)) if '<div class="history" id="history">' in line: Stavka1 = lines[i+3].strip()[21:50]# stavka.append(line.strip()[21:30]) Stavka2.append(np.float(Stavka1[0:Stavka1.find('р')])) Igrok1 = lines[i+3].strip()[21:-24] # А вот для ника возьмем с минусом Igrok2.append(Igrok1[Stavka1.find('р')+26:]) types = [type1, type2, type3, type4, type5] ty = [] for q in range(len(types)): if 'Участ' in types[q]: ty.append(1) # Не требует свободных лотов (+) elif 'Кажд' in types[q]: ty.append(2) # Ограниченное количество ставок (+) elif 'Лог' in types[q]: ty.append(3) #'Логины зашифрованы'(+) elif 'Днев' in types[q]: ty.append(4) #'Дневной'(+) elif 'Один' in types[q]: ty.append(5) #'С блефом' (+) - Внезапно ОО elif 'Аукцион для' in types[q]: ty.append(6) #' Для новичков' (+) elif 'Ставк' in types[q]: ty.append(7) #'На понижение' elif 'Фикс' in types[q]: ty.append(8) #'Фиксированная цена' elif '100' in types[q]: ty.append(9) #'100% скидка' elif 'Бесп' in types[q]: ty.append(10) #'Бесплатные ставки' else: ty.append(0) Typs[0].append(1 if ty[0] == 1 or ty[1] == 1 or ty[2] == 1 or ty[3] == 1 or ty[4] == 1 else 0) Typs[1].append(1 if ty[0] == 2 or ty[1] == 2 or ty[2] == 2 or ty[3] == 2 or ty[4] == 2 else 0) Typs[2].append(1 if ty[0] == 3 or ty[1] == 3 or ty[2] == 3 or ty[3] == 3 or ty[4] == 3 else 0) Typs[3].append(1 if ty[0] == 4 or ty[1] == 4 or ty[2] == 4 or ty[3] == 4 or ty[4] == 4 else 0) Typs[4].append(1 if ty[0] == 5 or ty[1] == 5 or ty[2] == 5 or ty[3] == 5 or ty[4] == 5 else 0) Typs[5].append(1 if ty[0] == 6 or ty[1] == 6 or ty[2] == 6 or ty[3] == 6 or ty[4] == 6 else 0) Typs[6].append(1 if ty[0] == 7 or ty[1] == 7 or ty[2] == 7 or ty[3] == 7 or ty[4] == 7 else 0) Typs[7].append(1 if ty[0] == 8 or ty[1] == 8 or ty[2] == 8 or ty[3] == 8 or ty[4] == 8 else 0) Typs[8].append(1 if ty[0] == 9 or ty[1] == 9 or ty[2] == 9 or ty[3] == 9 or ty[4] == 9 else 0) Typs[9].append(1 if ty[0] == 10 or ty[1] == 10 or ty[2] == 10 or ty[3] == 10 or ty[4] == 10 else 0) print rasnost, '\n', Blitz1, '\n', Stavka2, '\n', Igrok2, '\n', Data W = np.array(rasnost) Blitz = np.array(Blitz1) Stavka = np.array(Stavka2) #Mtyp1 = np.array(Typ1) #Mtyp1 = np.array(Typ1) #Mtyp2 = np.array(Typ2) #Mtyp3 = np.array(Typ3) #Mtyp4 = np.array(Typ4) #Mtyp5 = np.array(Typ5) #Mtyp6 = np.array(Typ6) #Mtyp7 = np.array(Typ7) #Mtyp8 = np.array(Typ8) #Mtyp9 = np.array(Typ9) #Mtyp10 = np.array(Typ10)
[[0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]]
[]

#Mtyp1 = np.array(Typ1) #Mtyp1 = np.array(Typ1) #Mtyp2 = np.array(Typ2) #Mtyp3 = np.array(Typ3) #Mtyp4 = np.array(Typ4) #Mtyp5 = np.array(Typ5) #Mtyp6 = np.array(Typ6) #Mtyp7 = np.array(Typ7) #Mtyp8 = np.array(Typ8) #Mtyp9 = np.array(Typ9) #Mtyp10 = np.array(Typ10)
Mtyp1 = np.array(Typs)
Отредактировано Dimazzzzzz (Июнь 9, 2012 23:06:32)
Офлайн
13
Не торопитесь, все будет. Проанализируете. Там же тоже самое внутри, что и в ваших многочисленных переменных.
Так, следующее задание.
посмотреть на это:
1 if ty[0] == 1 or ty[1] == 1 or ty[2] == 1 or ty[3] == 1 or ty[4] == 1 else 0
Отредактировано Ed (Июнь 9, 2012 23:06:18)
Офлайн