尝试从列表输入中获取字符串

时间:2019-06-27 17:32:46

标签: python

所以给了我一个列表-

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"

1 个答案:

答案 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']