我需要帮助来创建一个函数,具体操作如下: *如果输入字符串为“ -00-”,则函数的输出将为[“ 0000”,“ 1000”,“ 0001”,“ 1001”]的列表。
*如果输入字符串为“ 1--1-0”,则输出为[“ 100100”,“ 110100”,“ 101100”,....,“ 111110”]
*如果输入字符串是“ 111111”,例如不带任何“-”,则返回“ 111111”
def seperate (sub_array):
return_array=[]
b= [x for x in sub_array]
#print (b)
empty_array =[]
def dash (lis):
global count
count = 0
empty_array1 = lis.copy()
empty_array2 = lis.copy()
for n,i in enumerate(lis):
if (i == "-"):
empty_array1[n]= "0"
empty_array2[n]= "1"
empty_array.append(empty_array1)
empty_array.append(empty_array2)
return empty_array1 , empty_array2
else:
return lis
emp1, emp2 =(dash(b))
return_array.append((dash(emp1)))
return_array.append((dash(emp2)))
return return_array
答案 0 :(得分:0)
使用itertools.product。您可以阅读文档以获取详细说明。
from itertools import product
def seperate (sub_array):
ct = sub_array.count('-')
# repeat 0 or 1 for ct number of times
cartesian = product(range(2), repeat=ct)
fm = sub_array.replace('-', '{}')
# unpack each cartesian product to fill in '{}'
return [fm.format(*c) for c in cartesian]
print(seperate('-11-1-'))