所以给了我一个列表-
combos=[[0,0],[0,1],[1,1]]
和字典
d={0:2,1:2}
sum = 4
我希望输出为-
a=["yynn","yyyy","nnyy"]
输出中每个字符串的长度保持不变,并由sum表示,sum是通过将d中的所有值相加而得出的。
因此,组合中的每个索引代表一个可能的组合。
组合0为[0,0]
。我们看一下字典,发现0的长度为2。因此,组0的组合为"yy"
。
尽管0重复两次,但由于数字不是唯一的,因此它仅一次添加到字符串中。然后在字符串的其余部分加上“ n”。
所以s="yynn"
为1的长度为2,不在组合中。
同样,组合1为[0,1]
所以我们看一下d,看到0的长度为2,所以1,
所以s="yyyy"
然后将这些附加到列表中。
到目前为止,我已经尝试过:
a=[]
s=""
for i in range(len(combos)):
for j in range(len(combos[i])):
if new[i][j] in d:
s+="y"
else:
s+="n"
答案 0 :(得分:0)
combos=[[0,0],[0,1],[1,1]]
d={0:2,1:2}
sorted_keys, out = sorted(d.keys()), []
for c in combos:
s, items_in_combo = '', set(c)
for k in sorted_keys:
if k not in items_in_combo:
s += 'n' * d[k]
else:
s += 'y' * d[k]
out.append(s)
print(out)
打印:
['yynn', 'yyyy', 'nnyy']