Обновить элемент в списке в Python - PullRequest
0 голосов
/ 05 июля 2018

У меня есть список двоичного числа, его около 100 элементов в списке:

a='11010010'
n = 2
split=[a[i:i+n] for i in range(0, len(a), n)]

Результат показывается так:

split =['11', '01', '00', '10', '01', '10', '11'.....]

Мой вопрос, как назначить, если еще цикл для моего списка? Проблема в том, что список нужно обновлять автоматически в зависимости от значения элементов.

Например, если '11'=3*2, '01'=7*4, '00'=5*6, '10'=4*8

И я хочу, чтобы мой результат обновился до этого:

split =[6,28,30,32,28,32, 6 .....]

Большое спасибо! ;)

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Проблема в том, что список необходимо обновлять автоматически на основе стоимость элементов.

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

d = {'11': 6, '01': 28, '00': 30, '10': 32}

Затем, используя map или понимание списка, примените сопоставление к элементам вашего списка:

# map
res = list(map(d.get, split))

# list comprehension
res = [d[i] for i in split]

print(res)

[6, 28, 30, 32, 28, 32, 6]
0 голосов
/ 05 июля 2018

Это довольно неясный вопрос, учитывая, что encode не является стандартной функцией python, и сказать, что '11' = 3 * 2 не имеет большого смысла, но я постараюсь указать вам на правильное направление здесь.

Большая часть циклов if-else в Python может быть выполнена с помощью списков . Эти структуры позволяют создавать списки на основе указанных вами условий и циклов. Они имеют следующую структуру

[value(i) for i in list if condition else value2(i)]

Вы можете попытаться использовать это, чтобы решить вашу проблему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...