Python 使用小于运算符从列表中删除项目

Python 使用小于运算符从列表中删除项目,python,string,list,Python,String,List,我正在为一个班级编写一个程序,让我们建立一个craigslist类型的程序 myStr=[] b = "bike" ans = True while ans: print "1. Add an item" print "2. Find an item" print "3. Print the message board" print "4. Quit" choice = input("Enter your selection: ") if choi

我正在为一个班级编写一个程序,让我们建立一个craigslist类型的程序

myStr=[]
b = "bike"
ans = True
while ans:
    print "1. Add an item"
    print "2. Find an item"
    print "3. Print the message board"
    print "4. Quit"
    choice = input("Enter your selection: ")
    if choice == 1:
        itemType = raw_input("Enter the item type-b,m,d,t,c: ")
        itemCost = input("Enter the item cost: ")
        myStr.append([itemType,itemCost])
    if choice == 2:
        itemType = raw_input("Enter the item type-b,m,d,t,c: ")
        maximum = input("Enter the maximum item cost: ")
        print maximum
    if choice == 3:
        print myStr
    if choice == 4:
        break
这里的内容很容易阅读,但我缺少了一个关键部分,那就是从myStr中删除条目。我尝试使用for循环,但它不起作用。我需要它做的是删除符合此条件的第一个条目。
如果最大>项目成本,则删除列表中的第一个项目
。 我不能用脑子去想,所以任何帮助都会很好


此外,任何其他建议,以改善我的代码是欢迎的

您可以尝试提取成本大于最大值的项目列表,然后从列表中删除这些项目。列表理解是伟大的

max_cost = 3
myStr = [['Item1', 2], ['Item2', 3], ['Item3', 4]]
to_remove = [item for item in myStr if item[1] > max_cost]
for item in to_remove:
    myStr.remove(item)

您可以尝试类似的方法。

有一些方法可以从列表中删除,但它们基本上是丑陋的,因为列表不是解决此类问题的良好数据结构。请考虑使用字典。对于代码审查,请参阅编写一些新代码,只是为了测试您试图在两行或三行代码中实现什么。那么你的问题可以是关于一个问题。