Для l oop не обновляется мой список, как ожидалось в python - PullRequest
0 голосов
/ 07 апреля 2020

Я борюсь с тем, что этот код не выводит то, что я ожидаю.

Здесь код:

'base' - это список наборов

'элементов 'это список строк

base = [{'?', '?'},{'?', '?'},{'?', '?'},{'?', '?'},{'?', '?'}]
items = ['?','?','?','?','?','?']

for i in items:
    for j in base:
        j.add(i)

Мой результат такой, если я печатаю базу

[{'?', '?', '?', '?', '?', '?'},
 {'?', '?', '?', '?', '?', '?'},
 {'?', '?', '?', '?', '?', '?'},
 {'?', '?', '?', '?', '?', '?'},
 {'?', '?', '?', '?', '?', '?'}]

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


[{'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
 {'?', '?', '?'},
...]

1 Ответ

1 голос
/ 07 апреля 2020

Вы не получите то, что вам нужно с наборами, которые не позволяют повторять предметы. Преобразуйте его в список, а затем переверните l oop:

base = [{'?', '?'},{'?', '?'},{'?', '?'},{'?', '?'},{'?', '?'}] items = ['?','?','?','?','?','?'] base2 = [] for i in base: for j in items: k = list(i).copy() k.append(j) base2.append(k) base2

...