列表和集,如何在值上使用条件

时间:2015-11-13 13:10:57

标签: python list search set

我有一个列表,其中包含集合。我已经被困了6个小时,但仍然无法弄清楚如何在列表中提取值。

我需要对这些条件使用条件并进行def搜索。

代码如下:

list_a = {1: x, 2: x}
list_b = {1: a, 2: b}
list_c = {1: [q, w, e, r], 2: [a, s, d, f]} 

我需要提取值并进行搜索功能。

model = {'1':"A123", '2':"9210"}
brand = {'1':"IPhone", '2': "Nokia"}
price = {'1': "4000.00", '2':"200.00"}
feature = {'1':["Wi-fi", "DualSim", "MAC OS"], '2':["Snake","Backlight"]}`


def search():
    lowprice=float(raw_input("Enter lower bound of price: "))
    upperprice= float(raw_input("Enter upper bound of price: "))
    brandfinder=raw_input("Enter brand name: ")
    for key in model: 
        brandholder = str(brand[key])
        priceholder = float(price[key])
        brandholder = str(brand[key])
        modelholder = str(model[key])
        priceholder = str(price[key])

    if priceholder > lowprice:
        if priceholder < upperprice
        print key +". " + brandholder + ", " + modelholder + ", P" + priceholder
        print "Features: " + str(feature[key])

我必须在def功能的输入上加上价格范围和品牌名称。我一直没有为它获得正确的代码..它没有给出正确的输出。

1 个答案:

答案 0 :(得分:0)

我想问一下你遇到了什么样的错误?因为除非我弄错了。这似乎是一个简单的修复。

lowerprice是一个浮点数,priceholder是一个字符串。因此,当您尝试比较哪个更大时,您会收到错误。

TypeError: unorderable types: str() > float()

另一个问题是缩进。我以为你可能在SO中输错了。但如果你还没有,那么这是另一个需要考虑的问题。我引用的缩进是针对if语句下面的打印。

另一件事。使用<>检查值是否在2个边界值之间时,您可以在显示的同一语句中使用它们。

另外,我想问一下,如果你要转换它们,为什么你的浮动字符串在价格中?将它们存储为浮点数而不是字符串更有意义。

model = {'1':"A123", '2':"9210"}
brand = {'1':"IPhone", '2': "Nokia"}
price = {'1': "4000.00", '2':"200.00"}
feature = {'1':["Wi-fi", "DualSim", "MAC OS"], '2':["Snake","Backlight"]}

def search():
    lowprice=float(input("Enter lower bound of price: "))
    upperprice= float(input("Enter upper bound of price: "))
    brandfinder=input("Enter brand name: ")
    for key in model: 
        brandholder = str(brand[key])
        priceholder = float(price[key])
        brandholder = str(brand[key])
        modelholder = str(model[key])
        priceholder = float(price[key])

        if lowprice < priceholder < upperprice:
            print key +". " + brandholder + ", " + modelholder + ", P" + str(priceholder)
            print "Features: " + str(feature[key])

#Input
Enter lower bound of price: 400
Enter upper bound of price: 5000
Enter brand name: IPhone
#Output
1. IPhone, A123, P4000.0
Features: ['Wi-fi', 'DualSim', 'MAC OS']