2

マスクが文字列または数字にのみ適用できるかどうかわからないので、両方をタイトルに含めました(後で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 に答える