Python接受用户输入并从列表中删除该输入

Python接受用户输入并从列表中删除该输入,python,list,python-3.x,Python,List,Python 3.x,我已经试了几天了。我必须阅读一份包含动物园动物的文件。(即,['ID'、'Name'、'Species'])接下来,必须接受用户的ID选择并从列表中删除。这就是我到目前为止所做的。我被卡住了,在本节完成之前无法继续。我感谢你的评论。也使用Python3 f = open('ZooAnimals.txt', 'r') #read in file file = [line.split(',') for line in f.readlines()] #turn file into list c = i

我已经试了几天了。我必须阅读一份包含动物园动物的文件。(即,['ID'、'Name'、'Species'])接下来,必须接受用户的ID选择并从列表中删除。这就是我到目前为止所做的。我被卡住了,在本节完成之前无法继续。我感谢你的评论。也使用Python3

f = open('ZooAnimals.txt', 'r') #read in file
file = [line.split(',') for line in f.readlines()] #turn file into list
c = input("What ID would you like to delete? ") #accept user input
file1 = list(c)#turn user input into a list item
list.pop(file1) #suppose to pop out the value
print(file)
编辑:

例如,该文件包含以下项目。 [[1]、[2]、[2]、[2]、[Babbity]、[3]、[Hank]、[17]、[Larry]、[Lion]、[10]、[Magilla]、[1494]、[Jim]、[Grizzy Bear\n]、[17]、[Larry]、[Lion\n]、[10]、[Magilla]、[Eastern Gorilla\n]、[1494]、[Jim]、[Grizzy Bear\n']

我想尝试删除例如,ID 2,Babbity,比利时兔


这是我无法对当前代码执行的操作。pop()删除列表的最后一个元素。您可能需要
文件。删除(c)
。另外,删除
file1=list(c)
。我不知道为什么会这样。

list.pop()
删除列表的最后一个元素。您可能需要
文件。删除(c)
。另外,删除
file1=list(c)
。我不知道为什么会这样。

list.pop
接受
索引作为参数。对于列表,这只能是一个整数。另外,
list('abc')!=[“abc”]
,而是
[“a”、“b”、“c”]
,因为
str
的迭代协议(按字母顺序)

然后,要使用更改更新文件,请执行以下操作:

with open("ZooAnimals.txt", "w") as zoo_animals_txt:
    for animal_stats in animals:
        print(",".join(animal_stats), file=zoo_animals_txt)

list.pop
接受
索引作为参数。对于列表,这只能是一个整数。另外,
list('abc')!=[“abc”]
,而是
[“a”、“b”、“c”]
,因为
str
的迭代协议(按字母顺序)

然后,要使用更改更新文件,请执行以下操作:

with open("ZooAnimals.txt", "w") as zoo_animals_txt:
    for animal_stats in animals:
        print(",".join(animal_stats), file=zoo_animals_txt)


您有什么问题?我无法从我正在阅读的文件中删除ID您必须使用嵌套的
列表(例如作业),或者您可以使用更合适的数据结构?您有什么问题?我无法从我正在阅读的文件中删除ID您必须使用嵌套的
列表
(例如,对于赋值),或者您可以使用更合适的数据结构吗?TypeError:描述符“remove”需要一个“list”对象,但收到了一个“str”,ID不是整个项。该文件将转换为一个嵌套的
list
s的
列表。对于
列表。remove(c)
才能工作(虽然我不建议重写
列表中的buil
),
c
必须是类似
['3','Bob','Lion']
。此外,
pop()
可以删除并返回
列表中的特定元素,如果您将索引传递给它,例如
[1,2,3]。pop(2)
返回
3
。类型错误:描述符“remove”需要一个“list”对象,但收到了一个“str”。ID不是整个项。该文件被转换为一个带有嵌套的
列表的
列表。对于
列表。remove(c)
才能工作(尽管我不建议重写内置的
列表
),
c
必须类似于
['3',Bob',Lion']
。此外,
pop()
可以删除并返回
列表的特定元素,如果您将索引传递给它,例如
[1,2,3]。pop(2)
返回
3
.Works!!非常感谢!您也希望此更改反映在文件中吗?我正想弄清楚。我会将“打开时”(“zooampanies.txt”)更改为“动物园动物”\u txt:“打开时”(“zooampanies.txt”,“w+”)更改为“动物园动物”\u txt:“编辑:无需完全擦除文件我在回答中添加了一种更新文件的方法。编辑:另外,
w+
打开文件的模式会截断(擦除)首先是文件,而
r+
不会。我选择了重新打开文件。@SethBulliard请给我一个投票,并将其添加为答案。工作!!非常感谢!你也希望这个更改反映在文件中吗?我正要弄清楚。我会用open(“zooasts.txt”)将“改为zoo\u anists\u txt:“改为”用open(“zooastanies.txt”)吗“,‘w+’)as zoo_anies_txt:‘编辑:不必完全删除文件我在回答中添加了一种更新文件的方法。编辑:另外,
w+
作为打开文件的模式会先截断(删除)文件,而
r+
不会。我选择了只重新打开文件。@SethBulliard请给我一个向上的投票,并将其添加为答案。