检查3个单独的用户输入是否都与Python中的列表列表的值匹配

时间:2016-10-21 04:00:43

标签: python tuples

我正在尝试创建一个非常简单的房地产数据库,该数据库将根据用户标准返回属性。

我有以下代码:

import sys

def main():


    print ("What type of property are you looking for?")

    Type = input()

    print ("How big of a property are you looking for?")

    Size = input()

    print ("Are you looking to lease or purchase a property?")

    Listing_Type = input()


    a = ('Retail', 1500, 'Lease')
    b = ('Industrial', 1440, 'Sale')
    c = ('Office', 1000, 'Lease')

    Database = (a, b, c)

    for i in Database:
        if Type == Database[i[0]] and Size == Database[i[1]] and Listing_Type == Database[i[2]]:

            text = "There is a %c square foot %d space for %z" % (Database[i[1]], Database[i[0]], Database[i[2]])

        else:

            i += 1

        if matches == 0:
            print ("Sorry, there were no matching properties.")


if __name__ == '__main__':
    main()

当我运行它时,我得到错误TypeError:元组索引必须是整数或切片,而不是str。

我仍在努力了解这是如何运作的。我需要检查属性类型和列表类型的字符串是否匹配,还要检查大小是否正确。

3 个答案:

答案 0 :(得分:0)

删除Database[] in Database[i[0]]in Database[i[1]]in Database[i[2]], 您已经在Database上进行了迭代,因此循环中的i将为ab,然后是c。要访问这些元组的值,i[0]就足够了。

答案 1 :(得分:0)

我在数据库中 所以首先

i =('Retail', 1500, 'Lease')

i[0]='Retail'

所以

database[i[0]]=database['Retail']

但数据库是元组而不是字典

答案 2 :(得分:0)

更改行

for i in database:

for i in range(len(database)):