Форум сайта python.su
2
Добрый день.
Есть список, в каждой строке есть подстрока содержащая ‘вход’ или ‘выход’.
Как разделить на два списка в одном строки содержащие ‘вход’ во втором ‘выход’?
Офлайн
186
>>> s = [1, 2, 1, 1, 1, 2, 2, 1, 2] >>> def summum(x, y): ... if y == 1: ... x[0].append(y) ... else: ... x[1].append(y) ... return x >>> [odin, dva] = reduce(summum, s, [[],[]]) >>> odin [1, 1, 1, 1, 1] >>> dva [2, 2, 2, 2]
Отредактировано Rodegast (Авг. 30, 2017 11:37:16)
Офлайн
568
А зачем вся эта светомузыка нужна, если можно узнать количество элементов 1 и элементов 2 и сформировать (нахрена???) два списка одинаковых значений?
Офлайн
2
Нужно массив разделить на два.
Строки содержащие ‘вход’ в один, а ‘выход’ в другой.
6:45:23;вход;Фамилия Имя Отчество;01.08.2017
6:45:45;выход;Фамилия Имя Отчество;01.08.2017
6:46:32;выход;Фамилия Имя Отчество;01.08.2017
6:57:01;вход;Фамилия Имя Отчество;01.08.2017
7:18:45;выход;Фамилия Имя Отчество;01.08.2017
18:11:40;вход;Фамилия Имя Отчество;01.08.2017
18:21:17;вход;Фамилия Имя Отчество;01.08.2017
18:29:53;вход;Фамилия Имя Отчество;01.08.2017
18:30:31;вход;Фамилия Имя Отчество;01.08.2017
18:30:35;вход;Фамилия Имя Отчество;01.08.2017
Офлайн
2
Пытаюсь перебирать элементы по строкам и если совпадение TRUE, записать строку в один массив, иначе во второй. Не получается, в первом массиве создает только ‘[’, а второй заполняет всем массивом изначальных, разбив его на символы.
for row in nf6: for elem in row: if elem == str('вход'): m_in.append(row) else: m_out.append(row) f_one.write(str(m_in)) f_two.write(str(m_out))
Офлайн
186
u"вход" in elem
Офлайн
2
Это в условии if заменить нужно, или вообще обойтись только for?
Офлайн
186
Вот тебе адаптированный вариант:
s = [ u"6:45:23;вход;Фамилия Имя Отчество;01.08.2017", u"6:45:45;выход;Фамилия Имя Отчество;01.08.2017", u"6:46:32;выход;Фамилия Имя Отчество;01.08.2017", u"6:57:01;вход;Фамилия Имя Отчество;01.08.2017", u"7:18:45;выход;Фамилия Имя Отчество;01.08.2017", u"18:11:40;вход;Фамилия Имя Отчество;01.08.2017", u"18:21:17;вход;Фамилия Имя Отчество;01.08.2017", u"18:29:53;вход;Фамилия Имя Отчество;01.08.2017", u"18:30:31;вход;Фамилия Имя Отчество;01.08.2017", u"18:30:35;вход;Фамилия Имя Отчество;01.08.2017" ] def summum(x, y): if u"вход" in y: x[0].append(y) else: x[1].append(y) return x [odin, dva] = reduce(summum, s, [[],[]]) print odin, dva
Офлайн