python - 如何使用用户输入从文件中删除内容
问题描述
我创建了一个包含内容的文件。问题是我知道如何添加内容,append
但我不知道如何使用用户输入从文件中删除内容。
代码是,results
变量是字典:
while True:
remover = int(input("What results do you want to remove "))
for line in enumerate(results, start = 1):
line.remove(remover)
print("{}".format(remover) + " is removed")
将不胜感激一些帮助
解决方案
这似乎很适合列表理解。
假设 results 是所有当前结果的列表请看下面的例子:
while True:
remover = input("What results do you want to remove ")
results = [line for line in results if line != remover]
print("{}".format(remover) + " is removed")
print("List currently has the following elements {}".format(results)
在下面的示例中,对于循环的每次迭代:
- 要求用户输入要删除的内容
- 通过使用列表推导创建一个新列表并将其放入“结果”中,该列表推导式从与“remover”中的任何内容不匹配的元素中创建一个新列表
- 将显示一条消息,说明已删除的内容以及打印当前列表的另一条消息
有关列表推导如何工作的更多信息,请参阅:https ://www.pythonforbeginners.com/basics/list-comprehensions-in-python
但是,如果您只想让示例正常工作,则可以将其重构为:
while True:
remover = int(input("What results do you want to remove "))
for line in results:
if line == remover:
results.remove(remover)
print("{}".format(remover) + " is removed")
我在这里改变了什么:
- 我已经将你的 for 语句移到了 while 块中,因为我假设每次迭代都希望发生这种情况(为什么 while 在那里),另外因为你使用了 while(true) 你永远不会执行 for 块
- 我已经更改了 foreach 的 for 语句,因为这大大简化了事情。
请注意,如果您使用的不是整数列表,而是字符串,则需要删除类型转换为 int
推荐阅读
- java - 如何在 Spring Boot 中编写控制器以接受格式 - /policies?page=2&limit=10 的查询字符串
- python-3.x - 多个 POST 请求,第二个请求得到 404 错误代码
- php - 如何将字符串法语转换为日期时间 PHP
- docker - 有条件地阻止容器退出
- meteor - 如何让 Meteor.absoluteUrl() 返回 https?
- python - 复杂的 json 到 pandas 数据框
- python - What seems wrong with my linear regression statsmodel?
- jenkins - Is it possible for single Jenkins job have different check list for different users?
- node.js - Passport deserializing multiple times on login
- file - batch file name renumber