要根据组成输入字符串的事务中是否出现=字符,从事务字符串中生成两个列表。交易是30年基本程序输入的结果。
Python的新手,花了比我想花更多的时间来读书,参加在线课程和访问网站。似乎无法通过我的大脑得到它。已经引用了正则表达式材料,但仍然无法正常工作。
'“ 1197 51.44FO +”“ 01 5699.11 = BB +”“ 1198VOID .00MIS +”“ 1179 37.76UT +”'
这是交易数据输入字符串的示例。 =字符表示存款交易。交易是分开的(以“ +”分隔)。存款和支票交易似乎都以“ +”结尾并以“
开头”我想输出两个列表。一种用于存款,另一种用于支票。然后,我将能够对两个列表进行简单的汇总/查询。
答案 0 :(得分:0)
我不确定我是否完全理解,但这确实满足了我的要求:
deposits = []
checks = []
line = r'" 1197 51.44FO +"" 01 5699.11=BB+"" 1198VOID .00MIS+"" 1179 37.76UT+"'
bits = line.split("\"")
for i in bits:
try:
if i[0] == ' ' and i[-1] == '+':
if '=' in i:
deposits.append(i[1:-1])
else:
checks.append(i[1:-1])
except IndexError:
pass
答案 1 :(得分:0)
这是我在这里获得输入的最新代码。我希望有更好的代码会受到赞赏;
deposits = []
checks = []
line = '"" 1197 51.44FO +"" 01 5699.11=BB+"" 1198VOID .00MIS+"" 1199 55.55FO +"" 01 4699.11=BB+""'
bits = line.split('+""') #same as my code above
#print (bits[0]) #prints line
for i in bits:
#print (i)
if '=' in i:
deposits.append(i[1:-3])
else:
checks.append(i[1:-3])