每日python(3)

在读取一组数据创字典时,可以使用setdefaul函数对字典进行初始化,这样很方便呀,不用每次都检查是否为新值

比如实际任务中,我希望把以人名为key的字典改换成以movie为key的字典就可以这样写

 1 namekey_dic = {‘Lisa Rose‘: {‘Lady in the Water‘: 2.5, ‘Snakes on a Plane‘: 3.5,
 2                          ‘Just My Luck‘: 3.0, ‘Superman Returns‘: 3.5, ‘You, Me and Dupree‘: 2.5,
 3                          ‘The Night Listener‘: 3.0},
 4            ‘Gene Seymour‘: {‘Lady in the Water‘: 3.0, ‘Snakes on a Plane‘: 3.5,
 5                             ‘Just My Luck‘: 1.5, ‘Superman Returns‘: 5.0, ‘The Night Listener‘: 3.0,
 6                             ‘You, Me and Dupree‘: 3.5},
 7            ‘Michael Phillips‘: {‘Lady in the Water‘: 2.5, ‘Snakes on a Plane‘: 3.0,
 8                                 ‘Superman Returns‘: 3.5, ‘The Night Listener‘: 4.0},
 9            ‘Claudia Puig‘: {‘Snakes on a Plane‘: 3.5, ‘Just My Luck‘: 3.0,
10                             ‘The Night Listener‘: 4.5, ‘Superman Returns‘: 4.0,
11                             ‘You, Me and Dupree‘: 2.5},
12            ‘Mick LaSalle‘: {‘Lady in the Water‘: 3.0, ‘Snakes on a Plane‘: 4.0,
13                             ‘Just My Luck‘: 2.0, ‘Superman Returns‘: 3.0, ‘The Night Listener‘: 3.0,
14                             ‘You, Me and Dupree‘: 2.0},
15            ‘Jack Matthews‘: {‘Lady in the Water‘: 3.0, ‘Snakes on a Plane‘: 4.0,
16                              ‘The Night Listener‘: 3.0, ‘Superman Returns‘: 5.0, ‘You, Me and Dupree‘: 3.5},
17            ‘Toby‘: {‘Snakes on a Plane‘: 4.5, ‘You, Me and Dupree‘: 1.0, ‘Superman Returns‘: 4.0}
18            }
19
20 def transform(scorelist):
21     movielist = {}
22     for person in scorelist:
23         for movie in scorelist[person]:
24             movielist.setdefault(movie, {})
25             movielist[movie][person] = scorelist[person][movie]
26     return movielist
27
28 moviekey_dic = transform(namekey_dic)

print moviekey_dic的结果为:

1 {‘Lady in the Water‘: {‘Lisa Rose‘: 2.5, ‘Jack Matthews‘: 3.0, ‘Michael Phillips‘: 2.5, ‘Gene Seymour‘: 3.0, ‘Mick LaSalle‘: 3.0}, ‘Snakes on a Plane‘: {‘Jack Matthews‘: 4.0, ‘Mick LaSalle‘: 4.0, ‘Claudia Puig‘: 3.5, ‘Lisa Rose‘: 3.5, ‘Toby‘: 4.5, ‘Gene Seymour‘: 3.5, ‘Michael Phillips‘: 3.0}, ‘Just My Luck‘: {‘Claudia Puig‘: 3.0, ‘Lisa Rose‘: 3.0, ‘Gene Seymour‘: 1.5, ‘Mick LaSalle‘: 2.0}, ‘Superman Returns‘: {‘Jack Matthews‘: 5.0, ‘Mick LaSalle‘: 3.0, ‘Claudia Puig‘: 4.0, ‘Lisa Rose‘: 3.5, ‘Toby‘: 4.0, ‘Gene Seymour‘: 5.0, ‘Michael Phillips‘: 3.5}, ‘The Night Listener‘: {‘Jack Matthews‘: 3.0, ‘Mick LaSalle‘: 3.0, ‘Claudia Puig‘: 4.5, ‘Lisa Rose‘: 3.0, ‘Gene Seymour‘: 3.0, ‘Michael Phillips‘: 4.0}, ‘You, Me and Dupree‘: {‘Jack Matthews‘: 3.5, ‘Mick LaSalle‘: 2.0, ‘Claudia Puig‘: 2.5, ‘Lisa Rose‘: 2.5, ‘Toby‘: 1.0, ‘Gene Seymour‘: 3.5}}
时间: 2024-10-12 10:24:06

每日python(3)的相关文章

每日python(6)

关于python第三方库的安装方法,现在大多都是直接从网上下载.tar.gz包,解压之后,里面包含setup.py ,然后直接在命令行里 python setup.py install即可 其他安装方式:详见 http://www.douban.com/group/topic/40892505/

【摘】人生苦短,每日python

python和它的字符串拼接 不懂效率的人,会这样拼接 >>> s = '' >>> for substring in ['hello ', 'world ']: ... s += substring ... >>> print(s) hello world python字符串是不可变的,拼接任意不可变序列都会生成一个新的序列对象. 即是说,每拼接一次,就要重新分配个空间,所以效率极低. 考虑效率的人,会这样拼接 >>> s = ''

每日python(1)

原始数据是每个用户对于所看过电影的评分: 我们的用户有'Lisa Rose','Gene Seymour'等等,原始数据cirtics是一个字典,key为用户名,value为一个电影评分字典,该字典的key为电影名,value为评分 如何找到所有的电影的集合呢? 1 critics = {'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5, 2 'Just My Luck': 3.0, 'Superman Return

每日python(7)

使用 % 将字典中的value嵌入到字符串中对应的key值中 dd = {"a":1,"b":2,"c":3} txt = "this is a test : a is %(a)s, b is %(b)s, c is %(c)s " print txt % dd 结果为: this is a test : a is 1, b is 2, c is 3

每日python(4)

re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None:而re.search匹配整个字符串,直到找到一个匹配. pattern = re.complie(regexp) pattern.match和pattern.search的区别也是上述 1 pattern2 = re.compile(r'(hello).+(world)') 2 3 match = pattern2.match("helloworld he

老男孩教育每日一题-2017-04-17:使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警

老男孩教育每日一题-2017-04-17: 使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警. 今天是老男孩教育每日一题陪伴大家的第29天.

Python基础班每日整理(六)

03_面向对象_day03 类属性和实例属性的概念.类属性是给类对象(类是一个特殊的对象)中定义的属性,通常用来记录与这个类相关的特征,类属性不会用于记录具体对象的特征.类属性的定义是在初始化方法之外的实例对象的属性叫做实例属性,在初始化方法内部定义 类属性和实例属性的访问类属性的访问是类名.类属性实例属性的访问是实例对象.属性名,也可以在类内部使用self.属性名访问 类方法的定义和使用br/>@classmethoddef 类方法名(cls):pass需要修饰器@classmethod来标识

Python爬取金山词霸每日一句,存储到MySQL中

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/7/3 20:25 # @Author : baoshan # @Site : # @File : iciba.py.py # @Software: PyCharm Community Edition # 爬取金山词霸每日一句放到数据库中存储 import json import requests import pymysql host = '10.10.1.10' port

python每日经典算法题5(基础题)+1(中难题)

现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级函数的应用.这些题目是在某些刷题的网站上登记的有水平的题目.这里如果有需要input的简单题,就略去了输出结果.如果时间充裕,则就会增加每日更多习题. 一:基础算法题10道 1.判断用户输入的年份是否为闰年 题目解析: (1)问题分析:能被4整除但不能被100整除的年份为普通闰年,能被400整除的年