Python 删除功能中的列表 水果=[‘香蕉’、‘香蕉’、‘苹果’、‘香蕉’、‘香蕉’、‘橘子’、‘香蕉’] 选择=输入“水果:” 选择水果[:] 如果select==“香蕉”: 水果。去掉“香蕉” 如果select==“苹果”: 水果。去掉“苹果” 如果select==“橙色”: 水果。去掉“橘子” 印花水果
输出值为[],我应该怎么做才能留下[apple,orange]?我注意到您的代码有几个问题 选择水果[:] 应在水果中选择: 您在变量select中获取用户输入,并使用相同的变量在列表中迭代,因此重新定义select,从而使用户输入无效。在迭代中使用单独的变量 在修改列表的同时迭代列表不是一个好主意。改为创建一个新列表 使用类似 水果=[‘香蕉’、‘香蕉’、‘苹果’、‘香蕉’、‘香蕉’、‘橘子’、‘香蕉’] 选择=输入“水果:” 水果=[x表示水果中的x,如果x!=选择] 印花水果 在循环的每一次迭代中,您都将使用“水果列表”中的值覆盖select。由于if块覆盖列表中的所有选项,因此列表中的每个项目都将被删除。检查列表中的当前项是否等于输入Python 删除功能中的列表 水果=[‘香蕉’、‘香蕉’、‘苹果’、‘香蕉’、‘香蕉’、‘橘子’、‘香蕉’] 选择=输入“水果:” 选择水果[:] 如果select==“香蕉”: 水果。去掉“香蕉” 如果select==“苹果”: 水果。去掉“苹果” 如果select==“橙色”: 水果。去掉“橘子” 印花水果,python,list,remove,Python,List,Remove,输出值为[],我应该怎么做才能留下[apple,orange]?我注意到您的代码有几个问题 选择水果[:] 应在水果中选择: 您在变量select中获取用户输入,并使用相同的变量在列表中迭代,因此重新定义select,从而使用户输入无效。在迭代中使用单独的变量 在修改列表的同时迭代列表不是一个好主意。改为创建一个新列表 使用类似 水果=[‘香蕉’、‘香蕉’、‘苹果’、‘香蕉’、‘香蕉’、‘橘子’、‘香蕉’] 选择=输入“水果:” 水果=[x表示水果中的x,如果x!=选择] 印花水果 在循环的每一
fruits = ['banana', 'banana', 'apple', 'banana', 'banana', 'orange', 'banana']
select = input('fruit:') # 'banana'
for fruit in fruits[:]:
if fruit == select:
fruits.remove(fruit)
print(fruits) # ['apple', 'orange']
作为替代,您可以使用过滤器
或列表理解
fruits = [fruit for fruit in fruits if fruit != select]
print(fruits)
使用与输入不匹配的元素构建新列表
fruits = [fruit for fruit in fruits if fruit != select]
print(fruits)