令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 记多少而以