2

我不知道掩码是否只能应用于字符串或数字,所以我将两者都包含在我的标题中(因为我以后总是可以在两者之间进行翻译)。

假设我有一个掩码mask = '001001',我想以某种方式说“对于掩码中等于 1 的所有位置,将 X 应用于其他字符串中的相同位置”。

例如,假设我有一个数字 123456,我应用该掩码并希望将数字设置为 0。我会得到 120450。

如果我没有道理,请道歉。如果我之前的字符串示例不是最好的,请建议一个理想的掩码类型,以及使用它来将更改应用于单独的数字/字符串的简单方法。

4

1 回答 1

7
In [272]: mask = '001001'

In [273]: num=123456

In [274]: "".join(x if y!='1' else '0' for x,y in zip(str(num),mask))
Out[274]: '120450'

itertools.izip_longest()如果数字和掩码字符串的长度不同,则使用:

In [277]: mask = '001001'

In [278]: num=12345678

In [279]: "".join(x if y!='1' else '0' for x,y in izip_longest(str(num),mask,fillvalue="#"))
Out[279]: '12045078'
于 2012-12-25T00:52:54.597 回答