1
我想创建一个循环,将进一步细化用户自定义字典原来传球后和用户字符串解析:Python字典更新和完善循环
product_info = {'make': [], 'year': [], 'color': []}
make = ['honda','bmw','acura']
year = ['2013','2014','2015','2016']
colors = ['black','grey','red','blue']
user_input = raw_input()
for m in make:
if m in user_input:
product_info['make'].append(m)
for y in year:
if y in user_input:
product_info['year'].append(y)
for c in color:
if c in user_input:
product_info['color'].append(c)
这里就是我想检查字典并确保所有值都被占满了,如果没有,要求更多的投入来改进现有的字典:
例如:I am looking for a grey car
product_info = {'make': [], 'year': [], 'color': ['grey']}
if product_info['make'] is null:
print 'what make of car are you looking for?'
new_input = 'i am looking for a 2015 honda'
通过字典/解析过程中再次发送字符串和更新产品的详细信息词典如果填写,也看看,如果他们提到了一年,这一次的值,等...
更新字典:
product_info = {'make': ['honda'], 'year': ['2015'], 'color': ['grey']}
如何接收新的用户输入,请求更多信息并通过它解析,查找属性并更新现有字典而不修改旧属性?
我相信OP也可能想要确保用户输入“有效”的值。 提示时,您可能需要包含特定键的可接受输入值列表:print(“What%s?%s”%(key,values [key]))''。当然,这意味着要创建一个将值映射到有效值而不是具有独立列表('make','year','colors')的'values'映射。 其次,除非它是有效值,否则不要分配用户输入值。这意味着将上例中的最后一行放在'if'块中:'if user_input in values [key]:'。 –
'#使用你必须在这里解析他们的输入' 我希望他会把他的用户输入解析在这里....也许这个评论是不够清楚,我想我会更新他的用户进程逻辑 – MooingRawr
所以这与我正在寻找的非常接近,但是,如果使用它,我还想要选取其他值。例如,如果循环询问'是什么使?',并且用户碰巧进入'黑色本田',则它将继续并解析颜色,并跳过提示以询问颜色键 – chattrat423