我有一个程序,它接收两个数字并将它们相减,并告诉我们个位、十位和百位是否小于被减数,如果需要借位也会告诉我们。
我该如何做到这一点,以便我有4个字典的列表,每个字典对应一个特定的位置?
a=2345
b=1266
o=[int(d) for d in str(a)]
a=[int(d) for d in str(a)]
b=[int(d) for d in str(b)]
x=len(a)
y=len(b)
i=1
state=[]
c=[]
for n in range(x):
if a[x-i]<b[y-i]:
a[x-i]+=10
a[x-i-1]-=1
state.append(True)
else:
state.append(False)
i+=1
i=1
for m in range(x):
c.append(a[x-i]-b[y-i])
i+=1
c=c[::-1]
print(o) #before borrow
print(a) #after borrow
print(b) #number to subtract
print(c) #result
print(state) #if borrowed
这是我的输出:
[2, 3, 4, 5]
[2, 2, 13, 15]
[1, 2, 6, 6]
[1, 0, 7, 9]
[False, False, False, False]
以下是我的问题: 1)我想将结果映射到每个位置的字典列表中,如下所示:
[{'initial_num': '5', 'after_borrow': '15', 'state': True, 'after_subtract': '9'},
{'initial_num': '4', 'after_borrow': '13', 'state': True, 'after_subtract': '7'}...]
我该如何做到这一点,以便我有4个字典的列表,每个字典对应一个特定的位置?
state
是[True, True, False, False]
,与你的不同。这很奇怪。我使用的是Python 3.7.3版本。 - Brian