Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241

Почистить массив: удалить все подмассивы, нулевой элемент которых равен 0

20.11.2015, 18:17. Показов 1857. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, стыдно конечно, но во такой вопрос: Есть массив, содержащий в себе 6 массивов:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[u'2015 Mar-30 to Apr- 3', '2.64', '2.65', '2.62', '2.63', None]
[u'2015 Apr- 6 to Apr-10', '2.63', '2.71', '2.71', '2.72', '2.58']
[u'2015 Apr-13 to Apr-17', '2.58', '2.58', '2.62', '2.61', '2.67']
[u'2015 Apr-20 to Apr-24', '2.57', '2.59', '2.63', '2.59', '2.59']
[u'2015 Apr-27 to May- 1', '2.50', '2.55', '2.55', '2.56', '2.68']
[None, None, None, None, None, None]
[u'2015 May- 4 to May- 8', '2.72', '2.76', '2.76', '2.74', '2.78']
[u'2015 May-11 to May-15', '2.85', '2.85', '2.85', '2.87', '2.96']
[u'2015 May-18 to May-22', '3.01', '3.01', '3.04', '2.96', '2.96']
[u'2015 May-25 to May-29', None, '2.82', '2.82', '2.78', '2.78']
[u'2015 Jun- 1 to Jun- 5', '2.78', '2.63', '2.65', '2.60', '2.60']
[None, None, None, None, None, None]
[u'2015 Jun- 8 to Jun-12', '2.60', '2.72', '2.81', '2.88', '2.88']
[u'2015 Jun-15 to Jun-19', '2.89', '2.94', '2.93', '2.93', '2.81']
[u'2015 Jun-22 to Jun-26', '2.79', '2.83', '2.83', '2.80', '2.77']
[u'2015 Jun-29 to Jul- 3', '2.77', '2.80', '2.78', '2.79', '2.79']
[u'2015 Jul- 6 to Jul-10', '2.79', '2.77', '2.77', '2.70', '2.70']
[None, None, None, None, None, None]
[u'2015 Jul-13 to Jul-17', '2.88', '2.88', '2.93', '2.90', '2.88']
[u'2015 Jul-20 to Jul-24', '2.88', '2.84', '2.84', '2.92', '2.92']
[u'2015 Jul-27 to Jul-31', '2.92', '2.89', '2.91', '2.87', '2.76']
[u'2015 Aug- 3 to Aug- 7', '2.76', '2.83', '2.85', '2.76', '2.76']
[u'2015 Aug-10 to Aug-14', '2.85', '2.84', '2.93', '2.93', '2.83']
[None, None, None, None, None, None]
[u'2015 Aug-17 to Aug-21', '2.79', '2.71', '2.77', '2.77', '2.70']
[u'2015 Aug-24 to Aug-28', '2.65', '2.71', '2.73', '2.69', '2.69']
[u'2015 Aug-31 to Sep- 4', '2.70', '2.70', '2.70', '2.67', '2.67']
[u'2015 Sep- 7 to Sep-11', '2.67', '2.74', '2.74', '2.71', '2.67']
[u'2015 Sep-14 to Sep-18', '2.70', '2.74', '2.69', '2.69', '2.69']
[None, None, None, None, None, None]
[u'2015 Sep-21 to Sep-25', '2.61', '2.61', '2.62', '2.62', '2.60']
[u'2015 Sep-28 to Oct- 2', '2.66', '2.57', '2.47', '2.37', '2.37']
[u'2015 Oct- 5 to Oct- 9', '2.34', '2.35', '2.35', '2.35', '2.49']
[u'2015 Oct-12 to Oct-16', '2.48', '2.47', '2.47', '2.54', '2.42']
[u'2015 Oct-19 to Oct-23', '2.43', '2.46', '2.37', '2.37', '2.28']
[None, None, None, None, None, None]
[u'2015 Oct-26 to Oct-30', '2.18', '2.14', '2.14', '2.15', '1.98']
[u'2015 Nov- 2 to Nov- 6', '1.92', '1.92', '2.04', '2.04', '2.19']
[u'2015 Nov- 9 to Nov-13', '2.19', '2.14', '2.13', '2.05', '2.02']
[u'2015 Nov-16 to Nov-20', '2.02', None, None, None, None]
как бы мне поудалять все, arr[0] которых равен 0 ?
пробовал так:
Python
1
2
3
4
5
data = [self.clean_all_array(arr) for arr in data]
 
    def clean_all_array(self, arr):
        if arr != None:
            return arr
не работает
если так, то вернется:
Python
1
2
3
4
5
6
7
8
9
    data = self.clean_all_arrays(data)
    def clean_all_arrays(self, arr):
        new_arr = []
        for elem in arr:
            if elem == None:
                pass
            else:
                new_arr.append(elem)
        return new_arr
Python
1
2
3
4
5
6
7
8
9
10
[u'2015 Sep-21 to Sep-25', '2.61', '2.61', '2.62', '2.62', '2.60']
[u'2015 Sep-28 to Oct- 2', '2.66', '2.57', '2.47', '2.37', '2.37']
[u'2015 Oct- 5 to Oct- 9', '2.34', '2.35', '2.35', '2.35', '2.49']
[u'2015 Oct-12 to Oct-16', '2.48', '2.47', '2.47', '2.54', '2.42']
[u'2015 Oct-19 to Oct-23', '2.43', '2.46', '2.37', '2.37', '2.28']
[]
[u'2015 Oct-26 to Oct-30', '2.18', '2.14', '2.14', '2.15', '1.98']
[u'2015 Nov- 2 to Nov- 6', '1.92', '1.92', '2.04', '2.04', '2.19']
[u'2015 Nov- 9 to Nov-13', '2.19', '2.14', '2.13', '2.05', '2.02']
[u'2015 Nov-16 to Nov-20', '2.02']
что тоже не подходит
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.11.2015, 18:17
Ответы с готовыми решениями:

Удалить все столбцы, в которых есть хотя бы один нулевой элемент
Не могу разобраться с задачей. Удалить все столбцы, в которых есть хотя бы один нулевой элемент.

Удалить все строки матрицы, в которых есть хотя бы один нулевой элемент
Очень сильно нужна помощь,епрогу вроде бы и написал но все равно не хочет работать ошибка где-то в исходном коде помогите найти. Задание ...

Удалить все столбцы, в которых первый элемент равен последнему
Необходимо составить программу, позволяющую с помощью датчика случайных числе создать матрицу m*n. n,m-ввести с клавиатуры.Удалить все...

8
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
20.11.2015, 18:30
Лучший ответ Сообщение было отмечено scio me nescire как решение

Решение

если a - это ваш лист,
Кликните здесь для просмотра всего текста
Python
1
a = [[u'2015 Mar-30 to Apr- 3', '2.64', '2.65', '2.62', '2.63', None],[u'2015 Apr- 6 to Apr-10', '2.63', '2.71', '2.71', '2.72', '2.58'],[u'2015 Apr-13 to Apr-17', '2.58','2.58', '2.62', '2.61', '2.67'],[u'2015 Apr-20 to Apr-24', '2.57', '2.59', '2.63', '2.59', '2.59'],[u'2015 Apr-27 to May- 1', '2.50', '2.55', '2.55', '2.56', '2.68'],[None, None, None, None, None, None],[u'2015 May- 4 to May- 8', '2.72', '2.76', '2.76', '2.74', '2.78'],[u'2015 May-11 to May-15', '2.85', '2.85', '2.85', '2.87', '2.96'],[u'2015 May-18 to May-22', '3.01', '3.01', '3.04', '2.96', '2.96'],[u'2015 May-25 to May-29', None, '2.82', '2.82', '2.78', '2.78'],[u'2015 Jun- 1 to Jun- 5', '2.78', '2.63', '2.65', '2.60', '2.60'],[None, None, None, None, None, None],[u'2015 Jun- 8 to Jun-12', '2.60', '2.72', '2.81', '2.88', '2.88'],[u'2015 Jun-15 to Jun-19', '2.89', '2.94', '2.93', '2.93', '2.81'],[u'2015 Jun-22 to Jun-26', '2.79', '2.83', '2.83', '2.80', '2.77'],[u'2015 Jun-29 to Jul- 3', '2.77', '2.80', '2.78', '2.79', '2.79'],[u'2015 Jul- 6 to Jul-10', '2.79', '2.77', '2.77', '2.70', '2.70'],[None, None, None, None, None, None],[u'2015 Jul-13 to Jul-17', '2.88', '2.88', '2.93', '2.90', '2.88'],[u'2015 Jul-20 to Jul-24', '2.88', '2.84', '2.84', '2.92', '2.92'],[u'2015 Jul-27 to Jul-31', '2.92', '2.89', '2.91', '2.87', '2.76'],[u'2015 Aug- 3 to Aug- 7', '2.76', '2.83', '2.85', '2.76', '2.76'],[u'2015 Aug-10 to Aug-14', '2.85', '2.84', '2.93', '2.93', '2.83'],[None, None, None, None, None, None],[u'2015 Aug-17 to Aug-21', '2.79', '2.71', '2.77', '2.77', '2.70'],[u'2015 Aug-24 to Aug-28', '2.65', '2.71', '2.73', '2.69', '2.69'],[u'2015 Aug-31 to Sep- 4', '2.70', '2.70', '2.70', '2.67', '2.67'],[u'2015 Sep- 7 to Sep-11', '2.67', '2.74', '2.74', '2.71', '2.67'],[u'2015 Sep-14 to Sep-18', '2.70', '2.74', '2.69', '2.69', '2.69'],[None, None, None, None, None, None],[u'2015 Sep-21 to Sep-25', '2.61', '2.61', '2.62', '2.62', '2.60'],[u'2015 Sep-28 to Oct- 2', '2.66', '2.57', '2.47', '2.37', '2.37'],[u'2015 Oct- 5 to Oct- 9', '2.34', '2.35', '2.35', '2.35', '2.49'],[u'2015 Oct-12 to Oct-16', '2.48', '2.47', '2.47', '2.54', '2.42'],[u'2015 Oct-19 to Oct-23', '2.43', '2.46', '2.37', '2.37', '2.28'],[None, None, None, None, None, None],[u'2015 Oct-26 to Oct-30', '2.18', '2.14', '2.14', '2.15', '1.98'],[u'2015 Nov- 2 to Nov- 6', '1.92', '1.92', '2.04', '2.04', '2.19'],[u'2015 Nov- 9 to Nov-13', '2.19', '2.14', '2.13', '2.05', '2.02'],[u'2015 Nov-16 to Nov-20', '2.02', None, None, None, None]]

то убираем все внутренние листы, начинающиеся с None:
Python
1
a = [l for l in a if l[0]]
Это то, что Вам нужно?
1
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241
20.11.2015, 18:37  [ТС]
Jabbson,
я по моему так пробовал уже
Python
1
2
3
4
5
6
7
8
Traceback (most recent call last):
  File "/home/user/documents/work/python/parsing/gas/eia.py", line 59, in <module>
    day.main()
  File "/home/user/documents/work/python/parsing/gas/eia.py", line 54, in main
    self.parse_data()
  File "/home/user/documents/work/python/parsing/gas/eia.py", line 29, in parse_data
    a = [l for l in a if l[0]]
TypeError: 'NoneType' object has no attribute '__getitem__'
Добавлено через 40 секунд
на всякий:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import requests
from lxml import html
import re
 
 
class Day(object):
    """parse data from day page"""
 
    def __init__(self):
        super(Day, self).__init__()
        self.url = 'http://www.eia.gov/dnav/ng/hist/rngwhhdD.htm'
        self.filename = 'day.csv'
        self.site = requests.get(self.url)
        self.body = html.fromstring(self.site.content)
 
    def parse_data(self):
        trs = self.body.xpath('//table[@summary]//tr')[1:]
        for tr in trs:
            date = self.clean_empty(tr.xpath('.//td[1]/text()'))
            date = self.clean_date(date)
            mon = self.clean_empty(tr.xpath('./td[2]/text()'))
            tue = self.clean_empty(tr.xpath('./td[3]/text()'))
            wed = self.clean_empty(tr.xpath('./td[4]/text()'))
            thu = self.clean_empty(tr.xpath('./td[5]/text()'))
            fri = self.clean_empty(tr.xpath('./td[6]/text()'))
 
            data = [date, mon, tue, wed, thu, fri]
            a = data
            a = [l for l in a if l[0]]
 
            print(a)
 
    def clean_empty(self, elem):
        if len(elem) > 0:
            return elem[0]
 
    def clean_date(self, item):
        try:
            return re.sub(r'\xa0', u'', item)
        except TypeError:
            pass
 
    def main(self):
        self.parse_data()
 
 
if __name__ == '__main__':
    day = Day()
    day.main()
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
20.11.2015, 18:44
а можете показать
print(a)
после
a = data
1
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241
20.11.2015, 18:50  [ТС]
вывод
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
[u'1997 Jan- 6 to Jan-10', None, '3.82', '3.80', '3.61', '3.92']
[u'1997 Jan-13 to Jan-17', '4.00', '4.01', '4.34', '4.71', '3.91']
[u'1997 Jan-20 to Jan-24', '3.26', '2.99', '3.05', '2.96', '2.62']
[u'1997 Jan-27 to Jan-31', '2.98', '3.05', '2.91', '2.86', '2.77']
[u'1997 Feb- 3 to Feb- 7', '2.49', '2.59', '2.65', '2.51', '2.39']
[None, None, None, None, None, None]
[u'1997 Feb-10 to Feb-14', '2.42', '2.34', '2.42', '2.22', '2.12']
[u'1997 Feb-17 to Feb-21', None, '1.84', '1.95', '1.92', '1.92']
[u'1997 Feb-24 to Feb-28', '1.92', '1.77', '1.81', '1.80', '1.78']
[u'1997 Mar- 3 to Mar- 7', '1.80', '1.87', '1.92', '1.82', '1.89']
[u'1997 Mar-10 to Mar-14', '1.95', '1.92', '1.96', '1.98', '1.97']
[None, None, None, None, None, None]
[u'1997 Mar-17 to Mar-21', '2.01', '1.91', '1.88', '1.88', '1.87']
[u'1997 Mar-24 to Mar-28', '1.80', '1.85', '1.85', '1.84', None]
[u'1997 Mar-31 to Apr- 4', '1.84', '1.95', '1.85', '1.87', '1.91']
[u'1997 Apr- 7 to Apr-11', '1.99', '2.01', '1.96', '1.97', '1.98']
[u'1997 Apr-14 to Apr-18', '2.00', '2.00', '2.02', '2.08', '2.10']
[None, None, None, None, None, None]
[u'1997 Apr-21 to Apr-25', '2.09', '2.10', '2.22', '2.11', '2.16']
[u'1997 Apr-28 to May- 2', '2.10', '2.09', '2.16', '2.19', '2.21']
[u'1997 May- 5 to May- 9', '2.23', '2.25', '2.34', '2.33', '2.30']
[u'1997 May-12 to May-16', '2.27', '2.18', '2.22', '2.25', '2.19']
[u'1997 May-19 to May-23', '2.25', '2.22', '2.21', '2.22', '2.20']
[None, None, None, None, None, None]
[u'1997 May-26 to May-30', None, '2.29', '2.34', '2.29', '2.23']
[u'1997 Jun- 2 to Jun- 6', '2.20', '2.11', '2.19', '2.18', '2.19']
[u'1997 Jun- 9 to Jun-13', '2.19', '2.16', '2.16', '2.14', '2.15']
[u'1997 Jun-16 to Jun-20', '2.20', '2.20', '2.22', '2.23', '2.25']
[u'1997 Jun-23 to Jun-27', '2.29', '2.32', '2.32', '2.23', '2.17']
[None, None, None, None, None, None]
[u'1997 Jun-30 to Jul- 4', '2.17', '2.16', '2.14', '2.11', None]
[u'1997 Jul- 7 to Jul-11', '2.13', '2.13', '2.16', '2.15', '2.16']
[u'1997 Jul-14 to Jul-18', '2.18', '2.21', '2.24', '2.29', '2.26']
[u'1997 Jul-21 to Jul-25', '2.17', '2.18', '2.20', '2.24', '2.22']
[u'1997 Jul-28 to Aug- 1', '2.19', '2.23', '2.19', '2.23', '2.24']
[None, None, None, None, None, None]
[u'1997 Aug- 4 to Aug- 8', '2.26', '2.33', '2.38', '2.50', '2.38']
[u'1997 Aug-11 to Aug-15', '2.53', '2.56', '2.45', '2.57', '2.53']
[u'1997 Aug-18 to Aug-22', '2.56', '2.61', '2.62', '2.45', '2.47']
[u'1997 Aug-25 to Aug-29', '2.53', '2.58', '2.51', '2.57', '2.69']
[u'1997 Sep- 1 to Sep- 5', None, '2.82', '2.86', '2.73', '2.67']
[None, None, None, None, None, None]
[u'1997 Sep- 8 to Sep-12', '2.67', '2.74', '2.74', '2.78', '2.86']
[u'1997 Sep-15 to Sep-19', '2.88', '2.83', '2.75', '2.84', '2.94']
[u'1997 Sep-22 to Sep-26', '2.98', '3.09', '3.03', '3.05', '3.24']
[u'1997 Sep-29 to Oct- 3', '3.09', '2.96', '3.08', '2.97', '2.91']
[u'1997 Oct- 6 to Oct-10', '2.96', '2.81', '2.80', '2.80', '2.78']
[None, None, None, None, None, None]
[u'1997 Oct-13 to Oct-17', '2.87', '2.84', '2.84', '2.94', '2.97']
[u'1997 Oct-20 to Oct-24', '3.05', '3.13', '3.24', '3.34', '3.29']
[u'1997 Oct-27 to Oct-31', '3.46', '3.61', '3.45', '3.34', '3.22']
[u'1997 Nov- 3 to Nov- 7', '3.23', '3.15', '3.18', '3.20', '3.05']
[u'1997 Nov-10 to Nov-14', '3.20', '3.26', '3.28', '3.27', '3.25']
[None, None, None, None, None, None]
[u'1997 Nov-17 to Nov-21', '3.10', '3.00', '2.97', '2.77', '2.59']
[u'1997 Nov-24 to Nov-28', '2.63', '2.51', '2.50', None, None]
[u'1997 Dec- 1 to Dec- 5', '2.52', '2.61', '2.53', '2.48', '2.42']
[u'1997 Dec- 8 to Dec-12', '2.30', '2.35', '2.45', '2.30', '2.30']
[u'1997 Dec-15 to Dec-19', '2.25', '2.29', '2.38', '2.37', '2.39']
[None, None, None, None, None, None]
[u'1997 Dec-22 to Dec-26', '2.36', '2.24', '2.06', None, '2.18']
[u'1997 Dec-29 to Jan- 2', '2.33', '2.27', '2.27', None, '2.16']
[u'1998 Jan- 5 to Jan- 9', '2.05', '2.16', '2.13', '2.11', '2.09']
[u'1998 Jan-12 to Jan-16', '2.01', '2.03', '2.05', '2.07', '2.11']
[u'1998 Jan-19 to Jan-23', None, '2.12', '2.09', '2.10', '2.14']
[None, None, None, None, None, None]
[u'1998 Jan-26 to Jan-30', '2.09', '2.06', '2.09', '2.07', '2.09']
[u'1998 Feb- 2 to Feb- 6', '2.23', '2.27', '2.23', '2.31', '2.35']
[u'1998 Feb- 9 to Feb-13', '2.25', '2.18', '2.21', '2.20', '2.22']
[u'1998 Feb-16 to Feb-20', None, '2.18', '2.19', '2.22', '2.20']
[u'1998 Feb-23 to Feb-27', '2.20', '2.19', '2.21', '2.28', '2.23']
[None, None, None, None, None, None]
[u'1998 Mar- 2 to Mar- 6', '2.26', '2.24', '2.19', '2.12', '2.10']
[u'1998 Mar- 9 to Mar-13', '2.17', '2.25', '2.25', '2.23', '2.21']
[u'1998 Mar-16 to Mar-20', '2.20', '2.20', '2.21', '2.25', '2.28']
[u'1998 Mar-23 to Mar-27', '2.33', '2.29', '2.33', '2.29', '2.26']
[u'1998 Mar-30 to Apr- 3', '2.32', '2.34', '2.45', '2.43', '2.51']
[None, None, None, None, None, None]
[u'1998 Apr- 6 to Apr-10', '2.51', '2.51', '2.65', '2.61', None]
[u'1998 Apr-13 to Apr-17', '2.52', '2.42', '2.48', '2.48', '2.40']
[u'1998 Apr-20 to Apr-24', '2.40', '2.46', '2.46', '2.35', '2.31']
[u'1998 Apr-27 to May- 1', '2.29', '2.27', '2.29', '2.18', '2.11']
[u'1998 May- 4 to May- 8', '2.10', '2.19', '2.12', '2.16', '2.11']
[None, None, None, None, None, None]
[u'1998 May-11 to May-15', '2.19', '2.23', '2.24', '2.18', '2.18']
[u'1998 May-18 to May-22', '2.19', '2.17', '2.18', '2.11', '2.02']
[u'1998 May-25 to May-29', None, '2.10', '2.10', '2.04', '2.10']
[u'1998 Jun- 1 to Jun- 5', '2.10', '2.20', '2.13', '2.04', '2.01']
[u'1998 Jun- 8 to Jun-12', '2.00', '2.01', '1.98', '1.99', '2.01']
[None, None, None, None, None, None]
[u'1998 Jun-15 to Jun-19', '2.08', '2.10', '2.05', '2.14', '2.20']
[u'1998 Jun-22 to Jun-26', '2.35', '2.35', '2.40', '2.39', '2.40']
[u'1998 Jun-29 to Jul- 3', '2.36', '2.39', '2.46', '2.36', None]
[u'1998 Jul- 6 to Jul-10', '2.38', '2.35', '2.39', '2.38', '2.32']
[u'1998 Jul-13 to Jul-17', '2.30', '2.23', '2.21', '2.15', '2.15']
[None, None, None, None, None, None]
[u'1998 Jul-20 to Jul-24', '2.18', '2.09', '2.00', '2.00', '1.97']
[u'1998 Jul-27 to Jul-31', '2.00', '1.97', '1.99', '1.95', '1.85']
[u'1998 Aug- 3 to Aug- 7', '1.84', '1.90', '1.91', '1.85', '1.82']
[u'1998 Aug-10 to Aug-14', '1.87', '1.87', '1.85', '1.83', '1.83']
[u'1998 Aug-17 to Aug-21', '1.93', '1.94', '1.96', '1.90', '1.93']
[None, None, None, None, None, None]


Добавлено через 4 минуты
Jabbson, ох блин я кажется append то не сделал
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
20.11.2015, 18:52
Так у вас не массив массивов, у вас по одному маленькому массиву каждую итерацию

Добавлено через 1 минуту
Python
1
2
3
            data = [date, mon, tue, wed, thu, fri]
            if data[0]:
                print(data)
0
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241
20.11.2015, 18:52  [ТС]
Jabbson, спасибо, вот теперь все как надо
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import requests
from lxml import html
import re
 
 
class Day(object):
    """parse data from day page"""
 
    def __init__(self):
        super(Day, self).__init__()
        self.url = 'http://www.eia.gov/dnav/ng/hist/rngwhhdD.htm'
        self.filename = 'day.csv'
        self.site = requests.get(self.url)
        self.body = html.fromstring(self.site.content)
 
    def parse_data(self):
        trs = self.body.xpath('//table[@summary]//tr')[1:]
        all_data = []
        for tr in trs:
            date = self.clean_empty(tr.xpath('.//td[1]/text()'))
            date = self.clean_date(date)
            mon = self.clean_empty(tr.xpath('./td[2]/text()'))
            tue = self.clean_empty(tr.xpath('./td[3]/text()'))
            wed = self.clean_empty(tr.xpath('./td[4]/text()'))
            thu = self.clean_empty(tr.xpath('./td[5]/text()'))
            fri = self.clean_empty(tr.xpath('./td[6]/text()'))
 
            data = [date, mon, tue, wed, thu, fri]
            all_data.append(data)
        all_data = [array for array in all_data if array[0]]
 
    def clean_empty(self, elem):
        if len(elem) > 0:
            return elem[0]
 
    def clean_date(self, item):
        try:
            return re.sub(r'\xa0', u'', item)
        except TypeError:
            pass
 
    def main(self):
        self.parse_data()
 
 
if __name__ == '__main__':
    day = Day()
    day.main()
понял где натупил, только когда на форуме код увидел
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
20.11.2015, 20:33

Не по теме:

Рад, что все встало на свои места :)



Добавлено через 1 час 22 минуты
Можно сразу выбирать только нужные:

Python
1
2
#from lxml import html
from lxml import html, cssselect
Python
1
2
#trs = self.body.xpath('//table[@summary]//tr')[1:]
trs = self.body.cssselect('table[summary] tr:not(:nth-child(6n+7))')
и тогда проверять вообще ничего не нужно

Добавлено через 17 минут
тоже самое без cssselector-а тоже можно сделать:

Python
1
trs = self.body.xpath('//table[@summary]//tr[not (position() mod 6)]')[1:]
1
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241
20.11.2015, 22:11  [ТС]
Jabbson, спасибо, то что нужно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2015, 22:11
Помогаю со студенческими работами здесь

Удалить все строки двумерного массива, в которых есть хотя бы один нулевой элемент
Как реализовать двумерный массив с помощью ДСЧ и вручную и выполнить это действия? 2)Удалить все строки, в которых есть хотя бы один...

Типовая задача: Удалить все столбцы, в которых есть хотя бы один нулевой элемент
Всем привет,это мой первый пост на форуме,так что может быть,я что-то не по правилам сделал.Мне нужна помощь,нужно удалить все столбцы...

Одномерный массив. Удалить все числа квадрат которых равен номеру элемента
решите пожалуйста. написать программу, которая организует ввод с клавиатуры одномерного массива натуральных чисел преобразует его, а...

Задан массив нужно изменить все столбцы матрицы в которых равен нулю элемент главной диагонали
Задан массив C1, C2 ..., Cn. Нужно изменить все столбцы матрицы в которых равен нулю элемент главной диагонали: i-й элемент такого столбца...

Удалить столбцы, в которых есть хотя бы 1 нулевой элемент
удалить столбцы, в которых есть хотя бы 1 нулевой элемент. В чем ошибка. Ниже привел только функцию int udalstolb(int n, int m, int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru