2012-12-25 48 views
1

我不知道蒙版是否只能應用於字符串或數字,因此我將它們都包含在我的標題中(因爲我可以隨後在兩者之間進行翻譯)。如何將掩碼應用於Python中的數字或字符串?

比方說,我有一個面具mask = '001001',我想以某種方式說:「對於掩碼中等於1的所有位置,將X應用於這個其他字符串中的相同位置」。

例如說我有一個號碼123456和我申請的是面膜,並要設置的數字爲0。我會得到120450.

道歉,如果我沒了感覺。如果我以前的字符串例子不是最好的,請提出一個理想的遮罩類型,並使用它來將更改應用於單獨的數字/字符串。

回答

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' 
+0

我明白這一點的解決方案,除了拉鍊(STR(NUM),面罩)如何工作 - 你介意解釋這到底是什麼? – MyNameIsKhan

+0

@AaststASician在[docs](http://docs.python.org/2/library/functions.html#zip)中閱讀了關於'zip()'的內容。 –

+0

謝謝!我可以在3米內接受 – MyNameIsKhan