python 字典练习遇到的问题,if request == 'p':key = 'phone'这句怎么理解 ?下面是例子
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 字典练习遇到的问题,if request == 'p':key = 'phone'这句怎么理解 ?下面是例子相关的知识,希望对你有一定的参考价值。
people =
'Alice':
'phone':'1234',
'addr':'newland road 23'
,
'Jim':
'phone':'2928',
'addr':'Loop Park'
,
'Kein':
'phone':'6261',
'addr':'Hoobky Path'
labels =
'phone':'phone number',
'addr':'address'
name = raw_input('name: ')
request = raw_input('phone number(p) or address(a)?')
if request == 'p':key = 'phone'
if request == 'a':key = 'addr'
if name in people:print "%s's %s is %s." % (name,labels[key],people[name][key])
如果是p, 那么 request=='p'为真, 则把key 赋值为'phone'.
然后根据这个key,在最后一行打印phone。
如果是‘a’,同理。追问
request=='p'为真
就是 等于True ,然后 True:key = ‘phone’ 没看懂。
把key这个变量赋值为字符串'phone'
那么字典labels[key], 就是labels['phone'],就是‘phone number'.
if request == 'p':
key = 'phone'本回答被提问者和网友采纳 参考技术B request 为从标准输入的值,下面为判断该值是否为"p"或“a”,如果request 值为“p”,则变量key被赋值为“phone”
python 字典键值对练习
O(∩_∩)O哈哈~时间过得飞快,上次学python还是19年十一,这次更博已经20年的五一了。
间歇性踌躇满志,持续性混吃等死。
我还是那只笨笨的鸟,但是也一直蜷缩在窝里不敢飞的那种。
今天有在家练习学习python字典的一些例子。真的是:脑子觉得自己会了,但是手很诚实,敲半天,然后对脑子说,哦,你还没会呢!
今天练习的是列表转换成字典:
>>> cars = [[‘BMW‘, 8.5], [‘BENS‘, 8.3], [‘AUDI‘, 7.9]] >>> dict1 = dict(cars) >>> dict1 {‘BENS‘: 8.3, ‘AUDI‘: 7.9, ‘BMW‘: 8.5}
以上是运用系统自带的巧妙方法直接转换了,那如何自己写函数把列表和字典的键、值对应起来呢?
我开始想的是,直接写个for循环,将键和值分别按规律排放好,结果手就跟脚一样,敲了以下的代码:
>>> dict2 = {} >>> for i in cars: dict2[‘i[0]‘] = ‘i[1]‘ >>> dict2 {‘i[0]‘: ‘i[1]‘}
哈哈,发现了是什么错误没?我给‘i[0‘和‘i[1]‘都加了引号,不应该加的。
>>> for i in cars: dict2[i[0]] = i[1] >>> dict2 {‘BENS‘: 8.3, ‘AUDI‘: 7.9, ‘i[0]‘: ‘i[1]‘, ‘BMW‘: 8.5}
哦!注意把刚才笔误导致的 ‘i[0]‘: ‘i[1]‘删掉。
>>> del dict2[‘i[0]‘] >>> dict2 {‘BENS‘: 8.3, ‘AUDI‘: 7.9, ‘BMW‘: 8.5}
这样dict2就相当于把dict1 = dict(cars)的功能实现了。
那我想修改某个键的值怎么做?哈哈哈,也是很简单,直接写想被修改的值覆盖掉之前的值即可。举例如下:
>>> dict2[‘BENS‘] = 10 >>> dict2 {‘BENS‘: 10, ‘AUDI‘: 7.9, ‘BMW‘: 8.5}
我想看看键和值都是多少,还想把值进行求和,又该怎么做呢?
看键:
>>> for i in dict2: print(i) BENS AUDI BMW
看值:
>>> for i in dict2: print(dict2[i]) 10 7.9 8.5
对值求和:
>>> sum1 = 0 >>> for i in dict2: sum1 += dict2[i] >>> sum1 26.4
或者直接用dict2.values()和dict2.keys()查询:
>>> dict2.values() dict_values([10, 7.9, 8.5]) >>> dict2.keys() dict_keys([‘BENS‘, ‘AUDI‘, ‘BMW‘])
如果我把键放到list1中,把值放到list2中,我又该怎么把他俩合到一个字典里去呢?
>>> list1 = list(dict2) >>> list1 [‘BENS‘, ‘AUDI‘, ‘BMW‘] >>> list2 = list(dict2.values()) >>> list2 [10, 7.9, 8.5]
合的方法:
>>> for i in range(0,len(list1)): dict3[list1[i]] = list2[i] >>> dict3 {‘BENS‘: 10, ‘AUDI‘: 7.9, ‘BMW‘: 8.5}
哈哈哈,其实还有一个更快捷的方法,python有一个zip函数,可以将其匹配对应上。具体实现:
>>> zip1 = zip(list1,list2) >>> dict5 = dict(zip1) >>> dict5 {‘BENS‘: 10, ‘AUDI‘: 7.9, ‘BMW‘: 8.5}
也是很方便的。
所以python的好用易用,还是要感谢广大爱好者在添砖加瓦。
作为一名挣扎着学习的小菜鸡,我虽道阻且长,但也一如既往。
以上是关于python 字典练习遇到的问题,if request == 'p':key = 'phone'这句怎么理解 ?下面是例子的主要内容,如果未能解决你的问题,请参考以下文章