擅长:python、mysql、java
<p>你的问题描述很难理解。从您的注释中,我猜对于每个要查找二进制值列表的列表,数字可以描述通配符<code>'-'</code>是否替换为1或0。你知道吗</p>
<p>方法如下:</p>
<pre><code>def binvalues(s):
if '-' in s:
return (binvalues(s.replace('-', '0', 1))
+ binvalues(s.replace('-', '1', 1)))
else:
return [int(s, 2)]
def bindict(q):
d = {}
for i, s in enumerate(q):
d[i + 1] = binvalues("".join(s))
return d
print bindict([
['0', '0', '0', '-'],
['0', '0', '-', '0'],
['0', '-', '0', '1'],
['1', '0', '-', '1'],
['1', '1', '0', '-'],
['1', '-', '0', '1'],
['-', '0', '0', '1'],
['-', '1', '0', '1'],
['-', '-', '0', '1']
])
</code></pre>
<p>函数<code>bindict</code>处理列表的第一件事就是将其转换为字符串。然后您可以编写一个递归算法,用0和1替换每个<code>-</code>(一次一个,因此<code>replace</code>,1的第二个参数),并在没有通配符时返回一个包含单个数字的列表。转换函数<code>int</code>接受可能的第二个参数,这是基。你知道吗</p>