2018年12月

实际案例:统计每场都有进球的球员
如下: 字典中的键为球员名字, 值为进球数

In [22]: s1
Out[22]: {'a': 4, 'b': 3, 'e': 3, 'f': 4}

In [23]: s2
Out[23]: {'a': 4, 'b': 2, 'c': 3, 'd': 1, 'e': 1, 'f': 3}

In [24]: s3
Out[24]: {'b': 3, 'd': 4, 'f': 3}

思路:
转化成集合求交集的问题,
利用字典的viewkeys()函数获取字典的所有键(其返回值类似于集合)。

code:

In [33]: s1.viewkeys() & s2.viewkeys() & s3.viewkeys()
Out[33]: {'b', 'f'}

- 阅读剩余部分 -

以下字典代表6位不同同学的分数,如何根据分数给同学排名字:

 d = {'a': 73, 'b': 69, 'c': 66, 'x': 76, 'y': 88, 'z': 83}

方法一:
思路:
将字典转换成数组, sorted函数可以对数组进行排序,但是sorted 函数是先排数据第一个元素再第二个元素,因此需要把字典的值放在键的前面,字典如何转换成数组?使用zip函数。
code:

In [10]: sorted(zip(d.itervalues(), d.iterkeys()))
Out[10]: [(66, 'c'), (69, 'b'), (73, 'a'), (76, 'x'), (83, 'z'), (88, 'y')]

- 阅读剩余部分 -