我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Pythondict的综合应用有哪些

本篇内容主要讲解“Python dict的综合应用有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python dict的综合应用有哪些”吧!

成都创新互联从2013年开始,是专业互联网技术服务公司,拥有项目网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元右玉做网站,已为上家服务,为右玉各地企业和个人服务,联系电话:18980820575

题目 

1 写一个程序,合并字典里面相同 key 的值。

  • 输入:
    d1 = {'a': 100, 'b': 200, 'c':300} d2 = {'a': 300, 'b': 200, 'd':400}

  • 输出:
    {'a': 400, 'b': 400, 'd': 400, 'c': 300}

 

2 写一个程序,打印出字典里面所有唯一的值。

  • 输入:
    [{"V":"S001"}, {"V": "S002"}, {"VI": "S001"}, {"VI": "S005"}, {"VII":"S005"}, {"V":"S009"},{"VIII":"S007"}]

  • 输出:
    {'S005', 'S002', 'S007', 'S001', 'S009'}

 

3 把字典中的值分别取出,打印出不同字母的排列组合。

  • 输入:
    {'1':['a','b'], '2':['c','d']}

  • 输出:ac ad bc bd


解答 

1

这个题目,可以用循环+判断的方式,一个个的把值加起来,但是有点麻烦,直接用 Python 里面一个内置的模块可以轻松搞定。

from collections import Counter

d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}
d = Counter(d1) + Counter(d2)
print(dict(d))
   

2

这个题目,可以记住 DE8UG 的小提示,只要是涉及到唯一值的,很多都可以用 set 的排重的特点去完成。比如,这里只需要先把字典循环,然后取到每个字典的值,最后用 set 把重复的值取出,搞定。

L = [{"V":"S001"}, {"V": "S002"}, {"VI": "S001"}, {"VI": "S005"}, {"VII":"S005"}, {"V":"S009"},{"VIII":"S007"}]
print("Original List: ", L)

u_value = set( val for dic in L for val in dic.values())
print("Unique Values: ", u_value)
  

3

这题目可以有两个做法。一个是直接取到字典里的所有值,转换成列表,然后分别循环每个列表,把相应的字母相加即可。

d = {'1': ['a', 'b'], '2': ['c', 'd']}
la, lb = list(d.values())
print(la, lb)
print([(x+y) for x in la for y in lb])
 

另一个做法是使用 python 的 itertools,用里面的 product 方法直接去自动计算,其实内部和上一段代码的双层 for 循环实现方法类似。注意查看官方文档,参数位置需要一个星号。

import itertools

d = {'1': ['a', 'b'], '2': ['c', 'd']}
print(list(d.values()))

for combo in itertools.product(*list(d.values())):
   print(''.join(combo))

到此,相信大家对“Python dict的综合应用有哪些”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


本文名称:Pythondict的综合应用有哪些
本文URL:http://mswzjz.cn/article/jopjgc.html

其他资讯