需要帮助来扩展逻辑功能

时间:2019-06-06 00:38:48

标签: python-3.x

我需要帮助来创建一个函数,具体操作如下: *如果输入字符串为“ -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

1 个答案:

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