小编Boa*_*Boa的帖子

使用numpy生成彩色图像渐变

我写了一个生成2个彩色图像块的函数:

def generate_block():
    x = np.ones((50, 50, 3))
    x[:,:,0:3] = np.random.uniform(0, 1, (3,))
    show_image(x)

    y = np.ones((50, 50, 3))
    y[:, :, 0:3] = np.random.uniform(0, 1, (3,))
    show_image(y)
Run Code Online (Sandbox Code Playgroud)

然后,我想将这两种颜色组合起来以形成渐变,即1种图像从一种颜色变为另一种颜色。我不确定如何继续,有什么建议吗?使用np.linspace()我可以形成一维步骤数组,但是那又是什么呢?

python arrays numpy python-2.7

5
推荐指数
1
解决办法
1547
查看次数

将字符串嵌套在列表中n次,即列表列表

def nest(x, n):
    a = []
    for i in range(n):
        a.append([x])
    return a

print nest("hello", 5)
Run Code Online (Sandbox Code Playgroud)

这给出了输出

[['hello'], ['hello'], ['hello'], ['hello'], ['hello']]
Run Code Online (Sandbox Code Playgroud)

期望的输出是

[[[[["hello"]]]]]
Run Code Online (Sandbox Code Playgroud)

python nested list python-2.7

4
推荐指数
1
解决办法
92
查看次数

您可以在一个字符串中添加多少个字符x,以使该字符串中不存在三个连续的字符?

这是一个类似leetcode的面试问题,我曾尝试过一次,但并没有走很远,现在再试一次。给定一个字符串,您可以在字符串中输入多少个字符(例如'b'),以使字符串内不存在3个连续的'b'。

例:

鉴于: cat

字符串:bbcbbabbtbb 输出:8

给定 babb

字符串:bbabb 输出:1

给定 bb

字符串:bb 输出:0

我的方法是滑动窗口跟踪当前索引前面的“ b”,但是我很快就迷路了。我的解决方案可能还很遥远,但这里是:

def consecB(S):
    num = 0

    for i in range(0, len(S)-2):
        if S[i] == 'b':
            if S[i+1] == 'b':
                pass
            else:
                num += 1
                str_list += 'b'
            num +=1
        else:
            if S[i+1] == 'b':
                if S[i+2] == 'b':
                    pass
                else:
                    num += 1
            else:
                num += 2

    return num
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏。

干杯

多亏了最重要的答案,如果有人在想,我得以制定出解决方案:

def consecB(S):
    num_of_b = S.count('b')
    return 2*((len(S)-num_of_b)+1) - num_of_b
Run Code Online (Sandbox Code Playgroud)

python string algorithm

2
推荐指数
1
解决办法
107
查看次数

有没有什么方法可以转换这个for循环与列表理解?

我问的原因是在合并各种数据结构,字典,列表,字符串.

bffer = ""
dict_size = 128
for character in string:
    appnd_bffer = bffer + character
    if appnd_bffer in codebook:
        bffer = appnd_bffer
    else:
        output_list.append(codebook[bffer])
        codebook[appnd_bffer] = dict_size
        dict_size += 1
        bffer = character
Run Code Online (Sandbox Code Playgroud)

我是列表理解的新手,所以如果有可能我真的可以使用解释.干杯.

python for-loop list-comprehension python-2.7

1
推荐指数
2
解决办法
187
查看次数