Python接受用户输入并从列表中删除该输入
我已经试了几天了。我必须阅读一份包含动物园动物的文件。(即,['ID'、'Name'、'Species'])接下来,必须接受用户的ID选择并从列表中删除。这就是我到目前为止所做的。我被卡住了,在本节完成之前无法继续。我感谢你的评论。也使用Python3Python接受用户输入并从列表中删除该输入,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
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请给我一个向上的投票,并将其添加为答案。