码迷,mamicode.com
首页 > 编程语言 > 详细

python 字典键值对练习

时间:2020-05-05 00:52:15      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:转换   哈哈   快捷   导致   循环   for   code   多少   求和   

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 字典键值对练习

标签:转换   哈哈   快捷   导致   循环   for   code   多少   求和   

原文地址:https://www.cnblogs.com/ddxmt/p/12829039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!