函数的作用是:不完全弹出列表

2024-10-04 03:25:05 发布

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

问题描述:

un_confirmusers = ['A','B','C','D','E']
confirmusers = []
for un_confirmuser in un_confirmusers:
    current_user = un_confirmusers.pop()
    print("The current USER is: " + current_user.title())
    confirmusers.append(current_user)
print(confirmusers)
print(un_confirmusers)

汇编结果:

The current USER is: E
The current USER is: D
The current USER is: C
['E', 'D', 'C']
['A', 'B']

我不知道pop()没有完全弹出列表。 非常感谢。你知道吗


Tags: thein列表fortitleiscurrentpop
2条回答

您正在对正在迭代的列表进行变异,因此跟踪迭代次数的内部索引在3次迭代后发现自己大于列表的长度,并因此结束循环。你知道吗

您应该迭代un_confirmusers的副本,而不是更改:

for un_confirmuser in un_confirmusers:

收件人:

for un_confirmuser in un_confirmusers[:]:

更改后,您的代码输出:

The current USER is: E
The current USER is: D
The current USER is: C
The current USER is: B
The current USER is: A
['E', 'D', 'C', 'B', 'A']
[]

您可以使用while-loop,而不是使用for-loop

例如:

un_confirmusers = ['A','B','C','D','E']
confirmusers = []
while un_confirmusers:                      #!Update.
    current_user = un_confirmusers.pop()
    print("The current USER is: " + current_user.title())
    confirmusers.append(current_user)
print(confirmusers)
print(un_confirmusers)

输出:

The current USER is: E
The current USER is: D
The current USER is: C
The current USER is: B
The current USER is: A
['E', 'D', 'C', 'B', 'A']
[]

注意:迭代对象时删除元素不是一个好的做法。你知道吗

相关问题 更多 >