gpt4 book ai didi

python - 如何使用 for 循环删除多个全局分配的列表?

转载 作者:行者123 更新时间:2023-11-28 21:20:50 25 4
gpt4 key购买 nike

如果我有这些列表(实际上要大得多)

listSEG00 = ['n', 'n', '4', '3', 'w']
listSEG01 = ['4', '4', '4', '4', '4']
listSEG02 = ['l', 'l', 'l', 'l', 'l']
listSEG03 = ['5', 'l', '5', '8', '7']
listSEG04 = ['f', 'f', 'f', 'f', 'f']
listSEG05 = ['-', '-', '-', '-', '-']
listSEG06 = ['l', 'l', 'l', 'l', 'l']
listSEG07 = ['l', 'l', 'l', 'l', 'l']
listSEG08 = ['7', '4', '3', '8', '4']
listSEG09 = ['e', 'x', 'p', '9', 'm']

如何一次删除其中的许多内容?

到目前为止我有这个:

for y in range(0, 10):
if len(set(eval('listSEG%i' % y))) == 1:
del eval('listSEG%i' % y)

第三行出现错误。

语法错误:无法删除函数调用

所以我显然做得不对。

最佳答案

评论员建议您将这些保留在字典中或者不用担心删除它们是正确的,但是,您确实有这种能力。

可以从 globals() 返回的字典中删除模块级变量:

>>> listSEG00 = ['n', 'n', '4', '3', 'w']
>>> listSEG01 = ['4', '4', '4', '4', '4']
>>> listSEG02 = ['l', 'l', 'l', 'l', 'l']
>>> listSEG03 = ['5', 'l', '5', '8', '7']
>>> listSEG04 = ['f', 'f', 'f', 'f', 'f']
>>> listSEG05 = ['-', '-', '-', '-', '-']
>>> listSEG06 = ['l', 'l', 'l', 'l', 'l']
>>> listSEG07 = ['l', 'l', 'l', 'l', 'l']
>>> listSEG08 = ['7', '4', '3', '8', '4']
>>> listSEG09 = ['e', 'x', 'p', '9', 'm']
>>> for i in globals().keys():
... if i.startswith('list'):
... del globals()[i]
...
>>> globals()
{'i': '__doc__', '__builtins__': <module '__builtin__' (built-in)>, '__package__
': None, '__name__': '__main__', '__doc__': None}
>>> listSEG00
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'listSEG00' is not defined

关于python - 如何使用 for 循环删除多个全局分配的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22240861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com