我想要这里生成一个list, 这个list在transposition=1的时候,我会随机得到一个list, 然后所有数字都出现至少一次。
问题描述:
问题遇到的现象和发生背景
我想要这里生成一个list, 这个list在transposition=1的时候,我会随机得到一个list, 然后所有数字都出现至少一次。
问题相关代码,请勿粘贴截图
import random
from random import choice
transpositions=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
transposition=random.choices(transpositions, k=10)
pitch_class=[1, 4, 5, 7]
def newset(pitch_class, transposition):
picked = set()
while set(pitch_class) != picked:
picked.add(x := choice(pitch_class))
yield x + transposition
new_set=[*newset(pitch_class, transposition)]
###### 运行结果及报错内容
我的这个code, 出现了报错, 我知道问题是因为new_set=[*newset(pitch_class, transposition)]这里transiposition 不支持LIST
###### 我的解答思路和尝试过的方法
###### 我想要达到的结果
我希望transposition会运行10次, 然后10个list会加入到一个新的list里
答
yield x + transposition ====》》yield [x] + transposition