【发布时间】:2021-01-31 10:37:50
【问题描述】:
我想知道是否有一种方法可以根据事先的某些内容更改项目从哪个列表中删除。
list0 = ("1", "2", "3")
list1 = ("4", "5", "6")
var = randint(0,1)
if var == 0:
list = "list0"
else:
list = "list1"
list.pop(0)
print(list)
*据我所知,python 认为我正在尝试从字符串“list0//list1”中“弹出”第一项(取决于选择的内容),而不是列表。有没有办法可以将变量设置为我的列表名称之一?谢谢!
【问题讨论】:
-
不要在 Python 内置后命名变量:您现在已经覆盖了内置类型(和函数)
list。 -
使用字典,键为“list0”和“list1”(或者可能只是键“0”和“1”;从那里开始,您可以创建一个元组列表,因此 list0 变为
mylist[0]和 list1mylist[1]. -
请注意,您的列表是元组,它们是不可变的。你无法更改它们,因此调用
.pop会导致错误(实际上,对于元组,pop方法不存在)。如果要修改元组,请先将它们转换为列表。 -
最后,为什么不直接使用
if var == 0: list0.pop() ; else: list1.pop()。 -
我有许多不同的列表 (9),我宁愿在检查每一个时不执行一大堆代码(由我的一行 list.pop 表示)。不过谢谢,我会试一试!
标签: python python-3.x string list variables