令a和b為兩變數(0~9999),可自行輸入
試求有幾個位數不同
例如:1234/2345。 四個位數不同
例如:1123/1233。兩個位數不同
有人知道要怎麼表達嗎?
作者: Panthalassa 2018-04-03 02:26:00
假定 a, b 是字串,所求:sum([ a[i] != b[i] for i in range(len(a)) ])
作者:
ThxThx (洗洗睡)
2018-04-03 03:23:00樓上這樣 1). 沒有考慮len(b) < len(a)的時候會有error2). 比較慢又不pythonic我認為正確的作法是sum(x != y for x, y in zip(a, b))這是當a,b一樣長的時候,不保證一樣的時候sum(x != y for x, y in zip(reversed(a), reversed(b)))
作者: Panthalassa 2018-04-03 03:38:00
噢對!但也許應該要前面放 assert ?但若長度不一樣的話,用 zip 會補 None 然後算成不同不確定是否滿足需求...從原 Po 的敘述來看應該是要補 0
作者:
ThxThx (洗洗睡)
2018-04-03 05:26:00嗯嗯有道理我第二個答案會忽略比較長的把第二個答案zip換成itertools.zip_longest應該可以
作者:
djshen (djshen)
2018-04-03 10:15:00應該先說一下自己的想法
作者:
s860134 (s860134)
2018-04-03 12:12:00你的思路沒錯阿轉 str 用 zfill其實這根本就只是對 python buildin function 記多少而以