搜索具有特定字符串和值范围的列表字典

2024-09-29 22:40:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过指定

  1. 一根绳子
  2. 一系列价值观

目前我的代码是:

propid = ['001', '002', '003', '004'],
owner = ['bob', 'jim', 'rosie', 'anna'],
housenumber = ['1', '12', '31', '44'],
postcode = ['CF10 1AN', 'CF24 4AN', 'CF33 3AA', 'CF10 1AN'],
price = ['100000', '200000', '300000', '400000']

prop_dict = {propid[i]:[owner[i], housenumber[i], postcode[i], price[i]] for i in range(len(propid))

我想在这本词典中搜索:

  1. 邮政编码:如果postcode='CF10 1AN',则打印包含该邮政编码的所有人的完整属性说明,即['001':'bob'、'1'、'CF10 1AN'、'100000']和['004':…]

我通过以下方法来管理:

def searchPC(values, searchFor):
    for k in values:
        for v in values[k]:
            if searchFor in v:
                print(k,":", prop_dict[k])
    return None
  1. 价格范围:如果价格范围=100000到200000,则打印属于该规范的属性,即['001':'bob'、'1'、'CF10 1AN'、'100000']和['002':…]

我想把字典列表中的price转换成一个整数,但显然只有price部分,然后我想做一个类似于我在第1部分中所做的搜索,但是有一个min和一个max

我该怎么做呢?特别是整数部分

谢谢


Tags: infor属性pricedictbobvaluespostcode
1条回答
网友
1楼 · 发布于 2024-09-29 22:40:23

在我回答您的问题之前,您的代码中有一些错误:

owner = ['bob', 'jim', 'rosie', 'anna'],

返回元组而不是列表,因为后面有,请参见:

owner = ['bob', 'jim', 'rosie', 'anna'],
print(type(owner))
#prints <class 'tuple'>

同时,你的词典理解中也缺少了一个结束语}

你的问题的答案是:

propid = ['001', '002', '003', '004']
owner = ['bob', 'jim', 'rosie', 'anna']
housenumber = ['1', '12', '31', '44']
postcode = ['CF10 1AN', 'CF24 4AN', 'CF33 3AA', 'CF10 1AN']
price = ['100000', '200000', '300000', '400000']

prop_dict = {propid[i]:[owner[i], housenumber[i], postcode[i], price[i]] for i in range(len(propid))}

look = 'CF24 4AN' 
price_range = range(50000,150000)

for k,v in prop_dict.items():
    if look in v:
        print('{} has {}'.format(k,v))
    if int(v[3]) in price_range:
        print('{} with {} is in range'.format(k,v))

在遍历字典时,使用^{}从字典中获取键和值

然后比较您要查找的项目是否在值列表中,如果在值列表中,则打印它或执行其他操作

您可以使用^{}对象来确定您的价格是否在范围内。在比较之前,请确保将字典中的价格转换为int。将范围更改为您要查找的任何范围

注意这个答案适用于python3,因为它使用了range()。另外,如果您关心类型错误检查,请使用下面的方法检查范围。或者如果您使用的是旧版本,请使用

low_value = 50000
high_value = 150000
if low_value <= int(v[3]) <= high_value:

相关问题 更多 >

    热门问题