如何在forloop

问题描述 投票:0回答:1

在循环期间如何修改列表条目?,一般建议是它可能是不安全的,所以除非您知道它是安全的,否则不要这样做。在第一个答案下的评论@martineau说:

IT[LOOP变量]没有副本。它只是将循环变量名称分配给 迭代的事物的连续元素或价值。

这是我期望和想要的行为,但我没有得到它。我想从列表中的每个值中删除尾随的nulls。我的循环变量经过正确修改,但列表元素保持不变。

如何获得循环变量
fv

作为指向列表行的指针,而不是行的副本?

Extra信用:我的代码很糟糕,因此首选使用综合或切片而不是用于循环的解决方案。

foo

输出为:
foo = [
    ['a', 'b', None, None],
    ['c', None, 'e', None],
    ['f', None, None, None]
]

desired = [
    ['a', 'b'],
    ['c', None, 'e'],
    ['f']
]

for fv in foo:
    for v in range(len(fv) -1, 0, -1):
        if fv[v] == None:
            fv = fv[:v]
            print(f' {v:2} {fv}')
        else:
            break
print(foo)

使用
3 ['a', 'b', None] 2 ['a', 'b'] 3 ['c', None, 'e'] 3 ['f', None, None] 2 ['f', None] 1 ['f'] [['a', 'b', None, None], ['c', None, 'e', None], ['f', None, None, None]] Process finished with exit code 0

循环考虑使用

for
来剥离不需要的值,直到没有离开:
python for-loop
1个回答
0
投票


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.