Как добавить одно значение словаря несколько раз в массив? - PullRequest
0 голосов
/ 29 октября 2018

Я хочу добавить значение из f1 два раза в массив, но метод extend () дает мне эту ошибку?

TypeError: объект 'int' не может быть повторен

s = ("f1", "f1")
mo = []
for key, val in shiftweek.items():
    if key in s:
        mo.extend(val)

Есть ли другой способ добавить значение из f1 дважды в массив mo?

Best

Patrick

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

.extend () метод добавляет список в ваш текущий список, для добавления значения вы должны использовать метод .append ()

Я думаю, что этот код вам нужен

s = ("f1", "f1")
mo = []
for key, val in shiftweek.items():
    for i in s:
       if key == i:
           mo.append(val)
0 голосов
/ 29 октября 2018

Проблема в том, что extend принимает итеративный объект (список, кортеж и т. Д.), Но вы передаете одно значение (int).

Вы хотите использовать append вместо.

Вот пример:

s = ("f1", "f1")
mo = []
for key, val in shiftweek.items():
    if key in s:
        mo.append(val)

Редактировать : если вы хотите поместить n вхождений val в mo, где n равно числу вхождений key в s, то вы может сделать что-то вроде этого:

s = ("f1", "f1")
mo = []
for key, val in shiftweek.items():
     n = s.count(key)
     mo.extend([val] * n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...