在for循环中获取下一个值

2024-06-07 08:16:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个程序,从文件中读入银行数据,并将其存储在数据结构中,以便以后输出。在

我有一个存储事务的列表

D,520,W,20,D,100

其中字母是交易类型(取款或存款),数字是金额。在

我有一个for循环来计算余额,但是我很难到达下一个元素。在

基本上我想做的是:

^{pr2}$

谢谢你的帮助


Tags: 数据程序元素数据结构列表for字母数字
3条回答

一个简单的方法,这里。在

for i, v in enumerate(l):
    if v == 'D':
        balance = balance + int(l[i+1])

或者同时阅读两个项目:

^{pr2}$
data = 'D,520,W,20,D,100'.split(',')

def pairs(lst):
    it = iter(lst)
    return zip(it, it)

balance = 0
for trans,amt in pairs(data):
    if trans == 'D':
        balance += int(amt)
    else:
        balance -= int(amt)
print(balance)
data = 'D,520,W,20,D,100'.split(',')
it = iter(data)
balance = sum({'W': -1, 'D': +1}[item] * int(next(it)) for item in it)
print(balance)

创建一个迭代器并对其进行迭代。然后您可以调用next来获取下一项。在


或者不需要next,通过zip将列表中的项配对:

^{pr2}$

或者效仿你的例子:

theList = 'D,520,W,20,D,100'.split(',')
theIterator = iter(theList)
balance = 0
for item in theIterator:
    if item == 'D':
        balance = balance + int(next(theIterator))
    if item == 'W':
        balance = balance - int(next(theIterator))
print(balance)

相关问题 更多 >

    热门问题