最近在项目中经常遇到将list转为dict形式,之前都只会用for循环,取出list中的每个值,update到dict中。

示例1

scrabble_scores = [(1, "E A O I N R T L S U"), (2, "D G"), (3, "B C M P"), (4, "F H V W Y"), (5, "K"), (8, "J X"), (10, "Q Z")]

如何将上面的list拆分成key为字母,value为分数呢?

LETTER_SCORES = {letter: score for score, letters in scrabble_scores for letter in letters.split()}

通过上式处理后,就会形成{"A": 1..........}此类形式。

首先通过split()函数将字母分开,然后取出letters中的letter作为字典的key值,将分值作为value。

示例2

Letter = namedtuple('Letter', 'name amount value')

distribution = [Letter(name='A', amount='9', value='1'), Letter(name='B', amount='2', value='3'), Letter(name='C', amount='2', value='3'), Letter(name='D', amount='4', value='2'), Letter(name='E', amount='12', value='1'), Letter(name='F', amount='2', value='4'), Letter(name='G', amount='3', value='2'), Letter(name='H', amount='2', value='4'), Letter(name='I', amount='9', value='1'), Letter(name='J', amount='1', value='8'), Letter(name='K', amount='1', value='5'), Letter(name='L', amount='4', value='1'), Letter(name='M', amount='2', value='3'), Letter(name='N', amount='6', value='1'), Letter(name='O', amount='8', value='1'), Letter(name='P', amount='2', value='3'), Letter(name='Q', amount='1', value='10'), Letter(name='R', amount='6', value='1'), Letter(name='S', amount='4', value='1'), Letter(name='T', amount='6', value='1'), Letter(name='U', amount='4', value='1'), Letter(name='V', amount='2', value='4'), Letter(name='W', amount='2', value='4'), Letter(name='X', amount='1', value='8'), Letter(name='Y', amount='2', value='4'), Letter(name='Z', amount='1', value='10')]

如何将上面的distribution中的name和value转换成dict形式?

首先可以先将name和value值分别放到两个list中,可以通过下面代码实现:

names = [letter.name for letter in distribution]

values = [int(letter.value) for letter in distribution]

然后可以通过zip()函数将name和value一一对应起来:

zip(names, values)

for i in zip(names, values):

print(i)

通过循环打印可以发现,name和value已经一一对应上了。

最后将得到的由元组组成的list直接转为dict,在这边只需要直接用dict()函数即可。所以,实现上述功能需求,只需要下面一行代码:

LETTER_SCORES = dict(zip(

[letter.name for letter in distribution],

[int(letter.value) for letter in distribution]

))

得到的结果为:

{'A': 1, 'B': 3, 'C': 3, 'D': 2, 'E': 1, 'F': 4, 'G': 2, 'H': 4, 'I': 1, 'J': 8, 'K': 5, 'L': 1, 'M': 3, 'N': 1, 'O': 1, 'P': 3, 'Q': 10, 'R': 1, 'S': 1, 'T': 1, 'U': 1, 'V': 4, 'W': 4, 'X': 8, 'Y': 4, 'Z': 10}

python list转dict_python中将list转为dict相关推荐

  1. python 对象转dict_python model对象转为dict数据

    在接口通讯里经常遇到这种需求,需要将对象的字段名和值均传至接口, user = User.objects.get(id=1) 笨方法1,没错,我这样写过: di = {} di['username'] ...

  2. python把list转成字典_python中将list转为dict

    最近在项目中经常遇到将list转为dict形式,之前都只会用for循环,取出list中的每个值,update到dict中. 示例1 scrabble_scores = [(1, "E A O ...

  3. Python标准库:内置函数dict(mapping, **kwarg)

    Python标准库:内置函数dict(mapping, **kwarg) 本函数是从一个映射函数对象构造一个新字典. 与dict(**kwarg)函数不一样的地方是參数输入是一个映射类型的函数对象,比 ...

  4. python 将列表中的字符串转为数字_python 将列表中的字符串转为数字

    本文实例讲述了python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...

  5. Java中将图片转为GIF(实用)

    Java中将图片转为GIF 个人经验总结,如有转载请注明来源. 这里用到了2位大佬写的编码类 AnimateGifEncoder.GifSequenceWriter. 文章目录 Java中将图片转为G ...

  6. 【Python】pinyin模块将中文转为拼音

    [Python]pinyin模块将中文转为拼音 示例代码 示例代码 可以看到数据不是很规范,城市名称既有中文又有英文,而且上海被存储为ShangHai和Shanghai. 对于上海的问题,我们将拼音全 ...

  7. 通过Python的pdfplumber库将pdf转为图片

    文章目录 前言 一.pdfplumber库是什么? 二.安装pdfplumber库 三.查看pdfplumber库版本 四.pdf素材 五.将pdf转为图片 1.引入库 2.定义pdf路径 3.打开P ...

  8. 浅谈python中的 list、tuple、dict、set

    浅谈python中的 list.tuple.dict.set list: 简介: 有序的集合,包含多个元素 数据可以是任意类型 支持索引访问 用[ ]表示,例如a=[ ] 或者 a=list() 访问 ...

  9. python使用gdal将shp文件转为TIF

    python使用gdal将shp文件转为TIF 方法一 # 缺少获取shp文件坐标系的步骤 def vector2raster(inputfilePath, outputfile, resp):sf ...

最新文章

  1. 17篇论文入选CVPR 2019,百度AI都在关注什么?(附论文地址)
  2. 谷歌colab实验室使用GPU
  3. sql根据某个字段拼接另外字段
  4. Oracle函数大全2
  5. 做面板数据分位数回归模型_面板数据向量自回归模型
  6. 第七十三期:2019大裁员!年关将至,裁员比例竟达90%?
  7. php 递归实现无限极分类和排序_PHP实现选择排序
  8. python os write_Python 3:写入方法与os.write返回的字节数
  9. Android成长的幕后推手:工程师鲁宾
  10. GridView控件事件详解
  11. linux如何删除密钥链接,如何在不创建新密钥的情况下删除SSH密钥的密码短语?...
  12. VS自带数据库SqlExpress
  13. 直连路由的配置-思科模拟器练习(Cisco Packet Tracer)
  14. pygame中的mixer(含music)模块
  15. php 打印去掉页眉页脚,window.print打印 去掉页眉页脚及打印链接
  16. RFC1180 TCP/IP指南
  17. 通俗易懂的Android root 原理
  18. 多项式时间 P问题NP问题
  19. thunderbird 配置exchange邮箱
  20. python——字符串

热门文章

  1. .Net Core配置与自动更新
  2. 在ASP.NET Core中使用AOP来简化缓存操作
  3. 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
  4. ENVI帮助研究人员发现金矿
  5. comboBox绑定数据库后SelectedIndexChanged事件出错
  6. linux之ftp怎么把本地文件拷贝到服务端
  7. Android studio之迁移定制出现Installation failed with message Failed to finalize session
  8. linux下使用pidcat找bug
  9. sql LEFT JOIN RIGHT JOIN(左连接)(mysql)
  10. python图片解析库_python用来获得图片exif信息的库实例分析