Упакуйте последовательный дубликат элемента из списка в список списков и на основе позиции индекса этих последовательных дубликатов сделайте то же самое для другого списка - PullRequest
0 голосов
/ 09 июля 2020

У меня есть два списка («статус» и «вольт»). Я хочу прочитать список "статусов" и упаковать последовательные дубликаты определенного элемента из этого списка в список списков. Затем прочтите 2-й список («вольт») и на основе позиции индекса последовательных дубликатов из 1-го списка («статус») упакуйте или сгруппируйте элемент из 2-го списка («вольт») в список списков. Пожалуйста, помогите мне в этом, код, который я пробовал, приведен ниже:

Обратите внимание: элементы в списках «статус» и «вольт» разделены пробелами, чтобы показать группу, которую я хочу создать и поместить их в другом списке.

Packed_status = []
Packed_volt = []
status = [1, 1, 1, 1,   0, 0, 0,     1, 1,     0, 0,     1, 1, 1,     0, 0, 0,     1, 1,     0]
volt = [2, 3, 4, 5,     1, 3, 7,     2, 6,     5, 3,     3, 8, 4,     9, 5, 3,     6, 2,     7]

for i in range(0, len(status), 1):
    if status[i] == 0:
        Packed_status.append(status[i])
        Packed_volt.append(volt[i])
print Packed_status
print Packed_volt

Результат, который я получаю:

[0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 3, 7, 5, 3, 9, 5, 3, 7]

Мне нужен результат:

[[0, 0, 0], [0, 0], [0, 0, 0], [0]]
[[1, 3, 7], [5, 3], [9, 5, 3], [7]]

Элементы, выбранные для второго списка группировка должна быть точно такой же, как позиция индекса первой упаковки или группировки списка (для последовательных дубликатов).

1 Ответ

0 голосов
/ 09 июля 2020

Значение в списке сохраняется как тип int. так что место для разделения списка не подходит. если вы все еще хотите получить ответ. вы можете найти, используя значение списка 0 и 1.

Попробуйте это:

Packed_status = []
Packed_volt = []
status = [1, 1, 1, 1,   0, 0, 0,     1, 1,     0, 0,     1, 1, 1,     0, 0, 0,     1, 1,     0]
volt = [2, 3, 4, 5,     1, 3, 7,     2, 6,     5, 3,     3, 8, 4,     9, 5, 3,     6, 2,     7]

count = 0
temp_volt = []
temp_status = []
for i in range(0, len(status), 1):
    if status[i] == 0:
        temp_status.append(status[i])
        temp_volt.append(volt[i])
        count = 1
    else:
        if count == 1:
            Packed_status.append(temp_status)
            Packed_volt.append(temp_volt)
            temp_volt = []
            temp_status =[]
            count = 0
if count == 1:
    Packed_status.append(temp_status)
    Packed_volt.append(temp_volt)
print Packed_status
print Packed_volt

Вывод:

[[0, 0, 0], [0, 0], [0, 0, 0], [0]]
[[1, 3, 7], [5, 3], [9, 5, 3], [7]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...