Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用字符串名称从列表中删除项_Python_Python 3.x_String_List_Variables - Fatal编程技术网

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]
和list1
mylist[1]
。请注意,您的列表是元组,它们是不可变的。您无法更改它们,因此调用
.pop
将导致错误(事实上,元组不存在
pop
方法)。如果要修改元组,请先将元组转换为列表。最后,如果var==0:list0.pop(),为什么不直接使用
;否则:list1.pop()
。我有许多不同的列表(9),我不希望在检查每个列表时执行大量代码(由我的一行list.pop表示)。不过,谢谢,我会尝试一下!请注意,这个示例使用元组(如问题中所述),但这将导致
.pop()
出现
属性错误。