Python 使用字符串名称从列表中删除项
我想知道是否有一种方法可以改变一个项目被删除的列表,这取决于之前的内容Python 使用字符串名称从列表中删除项,python,python-3.x,string,list,variables,Python,Python 3.x,String,List,Variables,我想知道是否有一种方法可以改变一个项目被删除的列表,这取决于之前的内容 list0 = ("1", "2", "3") list1 = ("4", "5", "6") var = randint(0,1) if var == 0: list = "list0" else: list = "list1" list.po
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”(取决于所选内容)中的第一项,而不是列表。有没有一种方法可以将变量设置为我的列表名之一?谢谢 程序中的变量名与数据中的变量名之间存在差异 您无法(轻松)匹配程序中的数据和变量名 您可以使用映射来匹配数据:
lists = {0: ["1", "2", "3"],
1: ["4", "5", "6"]}
var = randint(0, 1)
lst = lists[var]
lst.pop(0)
print(lst)
(如果var else list0,则列表1)。弹出(0)
请注意,list0
和list1
必须是列表,而不是元组:元组是不可变的。因此,您应该以以下方式更改代码:
list0=[“1”、“2”、“3”]
列表1=[“4”、“5”、“6”]
不要以Python内置的名称命名变量:您现在已经覆盖了内置类型(和函数)列表
。使用dict,键为“list0”和“list1”(或者可能只是键为“0”和“1”;然后,您可以创建元组列表,这样list0就变成了mylist[0]
和list1mylist[1]
。请注意,您的列表是元组,它们是不可变的。您无法更改它们,因此调用.pop
将导致错误(事实上,元组不存在pop
方法)。如果要修改元组,请先将元组转换为列表。最后,如果var==0:list0.pop(),为什么不直接使用;否则:list1.pop()
。我有许多不同的列表(9),我不希望在检查每个列表时执行大量代码(由我的一行list.pop表示)。不过,谢谢,我会尝试一下!请注意,这个示例使用元组(如问题中所述),但这将导致.pop()
出现属性错误。