Python 在问答频道中刷题积累到的小技巧(二)

1. 读出Python彩蛋《The Zen of Python》并写入文件:

from this import s,d

txt = ''

for t in s:
    txt += d.get(t,t)

with open('zen.txt','w') as f:
    f.write(txt)

print('\nThe Zen of Python is written to a file named "zen.txt".')

输出结果:

'''
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

The Zen of Python is written to a file named "zen.txt".
'''


2. 内置函数sum()可以用于“列表降维”的来龙去脉

原理分析:

>>> # sum(iterable, start=0) --> 返回值:start + sum(iterable)
>>> sum([1,2,3])
6
>>> sum([1,2,3], start=5)
11
>>> # = start + sum([1,2,3]) # start在前是原因的
>>> sum([1,2,3], -5)
1
>>> sum([[1,2,3],[4,5]],[6]) # 换成列表的加法
[6, 1, 2, 3, 4, 5]
>>> [6]+[1,2,3]+[4,5]
[6, 1, 2, 3, 4, 5]
>>> sum([[1,2,3],[4,5]],[]) # 这就是第2参数用个空列表就能降维列表的原因
[1, 2, 3, 4, 5]

应用:倍容列表 [1,2,3,4,5] -> [1,1,2,2,3,3,4,4,5,5]

>>> listn = lambda ls,n=2:sum(map(lambda x:[x]*n,ls), [])
>>> a = [*range(1,5)]
>>> a
[1, 2, 3, 4]
>>> listn(a,3)
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
>>> [i//3 for i in range(3*5+1)]
[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5]
>>> [i//3 for i in range(3*5)]
[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
>>> [i//3+1 for i in range(4*3)]
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
>>> [1+i//3 for i in range(4*3)]
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
>>> a = [*range(1,5)]
>>> a
[1, 2, 3, 4]
>>> listn = lambda ls,n:sum(map(lambda x:[x]*n,ls),[])
>>> listn(a,3)
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
>>> [1+i//3 for i in range(4*3)] # 整数列表用整除运算推导也容易
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
>>> listn('abcde',3)
['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd', 'e', 'e', 'e']

应用:读出文本文件中所有单词(文件中无标点)

with open('sentence.txt', 'r') as f:
    data = f.read()

scores = sum([s.split() for s in data.split('\n')], [])

for s in scores:
    print(s)

3. 某瓣电影排名的榜单排序(一对多字典,由于键的唯一性对应键值用列表)

题目内容:

“我们导出了某瓣电影排名的 top250,现要统计不同导演所导演的电影在榜单中的数量,按照导演的电影数量排序,将导演的电影数量大于等于 3 的导演以及其导演的电影,使用 print 函数输出到屏幕。要求格式化对齐输出。”

import pandas as pd
 
df = pd.read_csv('某瓣电影排行榜.csv')
lis = [(director,film) for director,film in zip(df['导演'],df['影名'])]
dic = {}
 
for i,n in enumerate(lis):
    dic[n[0]] = dic.get(n[0], []) + [lis[i][1]] # 技巧点 ,当然pandas会有更好直接筛选方法
 
for k,v in sorted(dic.items(),key=lambda x:len(x[1]), reverse=True):
    if len(v)>=3:
        print(f"【导演】:{k}\n【片数】:{len(v)}\n【作品】:{' '.join(dic[k])}\n")

题目所需文件“某瓣电影排行榜.csv”的内容:

影名,导演,类型,评分,时长,评分人数
星际穿越,克里斯托弗·诺兰,"剧情,科幻,悬疑,家庭,冒险",9.1,169,416252
辛德勒的名单,史蒂文·斯皮尔伯格,"剧情,历史,战争",9.4,195,329749
唐伯虎点秋香,李力持,"喜剧,爱情,古装",8.3,102,260928
致命ID,詹姆斯·曼高德,"剧情,悬疑,惊悚",8.6,90,271970
指环王3:王者无敌,彼得·杰克逊,"剧情,动作,奇幻,冒险",9.1,201,255167
城市之光,查理·卓别林,"剧情,喜剧,爱情",9.2,87,34216
这个男人来自地球,理查德·沙因克曼,"剧情,科幻",8.5,87,147835
上帝也疯狂,加美·尤伊斯,喜剧,8.6,109,83463
大话西游之大圣娶亲,刘镇伟,"喜剧,动作,爱情,奇幻,冒险",9.1,95,395680
放牛班的春天,克里斯托夫·巴拉蒂,"剧情,音乐",9.2,97,396189
天堂电影院,朱塞佩·托纳多雷,"剧情,爱情",9.1,155,276417
搏击俱乐部,大卫·芬奇,"剧情,动作,悬疑,惊悚",9,139,371779
龙猫,宫崎骏,"动画,奇幻",9.1,86,368833
恐怖直播,金秉祐,"剧情,悬疑,犯罪",8.7,97,171029
导盲犬小Q,崔洋一,剧情,8.4,100,107144
迁徙的鸟,米歇尔·德巴,纪录片,9.1,98,47259
雨中曲,吉恩·凯利,"喜剧,爱情,歌舞",8.9,103,78633
重庆森林,王家卫,"剧情,爱情",8.6,102,273204
心迷宫,忻钰坤,"剧情,悬疑,犯罪",8.6,110,118206
天空之城,宫崎骏,"动画,奇幻,冒险",9,124,290846
幽灵公主,宫崎骏,"动画,奇幻,冒险",8.8,134,204654
哪吒闹海,徐景达,"动画,奇幻,冒险",8.8,65,66776
暖暖内含光,米歇尔·贡德里,"剧情,爱情,奇幻",8.4,108,126080
变脸,吴宇森,"动作,科幻,犯罪",8.4,138,188444
倩女幽魂,程小东,"剧情,爱情,武侠,古装",8.6,98,209933
再次出发之纽约遇见你,约翰·卡尼,"喜剧,爱情,音乐",8.5,104,131682
美丽心灵,朗·霍华德,"剧情,传记",8.9,135,270663
电锯惊魂,温子仁,"悬疑,惊悚,犯罪",8.6,103,175378
触不可及,艾力克·托兰达,"剧情,喜剧",9.1,112,319469
楚门的世界,彼得·威尔,剧情,9,103,383789
寿司之神,大卫·贾柏,纪录片,8.8,0,67637
曾经,约翰·卡尼,"剧情,爱情,音乐",8.3,85,180694
我们俩,马俪文,剧情,8.6,88,65853
情书,岩井俊二,"剧情,爱情",8.8,117,322455
忠犬八公的故事,莱塞·霍尔斯道姆,剧情,9.2,93,382566
海洋, 雅克·克鲁奥德,纪录片,9,104,90803
叫我第一名,彼得·维纳,"剧情,传记",8.6,95,94332
教父,弗朗西斯·福特·科波拉,"剧情,犯罪",9.2,175,302545
罪恶之城,昆汀·塔伦蒂诺,"动作,惊悚,犯罪",8.4,124,126712
蝙蝠侠:黑暗骑士,克里斯托弗·诺兰,"剧情,动作,科幻,惊悚,犯罪",9,152,275663
梦之安魂曲,达伦·阿伦诺夫斯基,剧情,8.7,102,93269
驯龙高手,克里斯·桑德斯,"喜剧,动画,家庭,奇幻,冒险",8.7,98,249937
大闹天宫,唐澄,"动画,奇幻",9.2,114,81504
夜访吸血鬼,尼尔·乔丹,"剧情,惊悚,奇幻",8.3,123,175118
中央车站,沃尔特·塞勒斯,剧情,8.7,113,68794
穿越时空的少女,细田守,"剧情,爱情,科幻,动画",8.6,98,160525
侧耳倾听,近藤喜文,"剧情,爱情,动画,音乐",8.8,111,143202
黑天鹅,达伦·阿伦诺夫斯基,"剧情,惊悚",8.5,108,368907
勇敢的心,梅尔·吉布森,"剧情,动作,传记,历史,战争",8.8,177,266346
E.T.,史蒂文·斯皮尔伯格,"剧情,科幻,奇幻,冒险",8.5,115,131633
摩登时代,查理·卓别林,"剧情,喜剧,爱情",9.1,87,71041
致命魔术,克里斯托弗·诺兰,"剧情,悬疑,惊悚",8.8,130,298550
时空恋旅人,理查德·柯蒂斯,"剧情,爱情,奇幻",8.6,123,155884
末代皇帝,贝纳尔多·贝托鲁奇,"剧情,传记,历史",8.8,163,130045
巴黎淘气帮,劳伦·泰拉德,"喜剧,家庭,儿童",8.6,92,95396
恋恋笔记本,尼克·卡索维茨,"剧情,爱情",8.5,123,236755
爱·回家,李廷香,"剧情,家庭,儿童",9.1,80,40448
谍影重重,道格·里曼,"动作,悬疑,冒险",8.5,119,166842
心灵捕手,格斯·范·桑特,剧情,8.7,126,230248
哈利·波特与魔法石,克里斯·哥伦布,"奇幻,冒险",8.6,152,204032
傲慢与偏见,乔·赖特,"剧情,爱情",8.4,129,257483
贫民窟的百万富翁,洛芙琳·坦丹,"剧情,爱情",8.5,120,358872
黄金三镖客,赛尔乔·莱翁内,"西部,冒险",9.1,161,41604
国王的演讲,汤姆·霍珀,"剧情,传记,历史",8.3,118,295538
本杰明·巴顿奇事,大卫·芬奇,"剧情,爱情,奇幻",8.7,166,351546
勇闯夺命岛,迈克尔·贝,"动作,冒险",8.5,136,124228
岁月神偷,罗启锐,"剧情,家庭",8.6,117,272506
哈利·波特与死亡圣器,大卫·叶茨,"剧情,悬疑,奇幻,冒险",8.6,130,235872
蝴蝶,费利普·弥勒,"剧情,喜剧,儿童",8.6,85,86402
一次别离,阿斯哈·法哈蒂,"剧情,家庭",8.7,123,112754
纵横四海,吴宇森,"剧情,喜剧,动作,犯罪",8.7,108,119076
神偷奶爸,克里斯·雷纳德,"喜剧,动画,儿童",8.5,95,323343
碧海蓝天,吕克·贝松,"剧情,爱情",8.7,168,99172
指环王1:魔戒再现,彼得·杰克逊,"剧情,动作,奇幻,冒险",8.9,178,270060
浪潮,丹尼斯·甘塞尔,剧情,8.7,107,109624
人工智能,史蒂文·斯皮尔伯格,"剧情,科幻,冒险",8.6,146,166585
风之谷,宫崎骏,"科幻,动画,奇幻,冒险",8.8,117,153327
剪刀手爱德华,蒂姆·波顿,"剧情,爱情,奇幻",8.7,105,430876
一一,杨德昌,"剧情,爱情,家庭",8.9,173,132442
角斗士,雷德利·斯科特,"剧情,动作,历史,冒险",8.4,155,113528
未麻的部屋,今敏,"动画,惊悚,奇幻",8.7,81,67199
泰坦尼克号,詹姆斯·卡梅隆,"剧情,爱情,灾难",9.2,194,570665
追随,克里斯托弗·诺兰,"悬疑,惊悚,犯罪",9,70,65345
大鱼,蒂姆·波顿,"剧情,家庭,奇幻,冒险",8.7,125,219205
少年派的奇幻漂流,李安,"剧情,奇幻,冒险",9,127,519595
窃听风暴,弗洛里安·亨克尔·冯·多纳斯马,"剧情,悬疑",9.1,137,191606
美国往事,赛尔乔·莱翁内,"剧情,犯罪",9.1,229,152463
东京物语,小津安二郎,"剧情,家庭",9.2,136,40030
V字仇杀队,詹姆斯·麦克特格,"剧情,动作,科幻,惊悚",8.8,132,360581
低俗小说,昆汀·塔伦蒂诺,"剧情,犯罪",8.7,154,288599
花样年华,王家卫,"剧情,爱情",8.4,98,202515
惊魂记,阿尔弗雷德·希区柯克,"悬疑,恐怖",8.8,109,67500
两杆大烟枪,盖·里奇,"剧情,喜剧,犯罪",9,107,245594
遗愿清单,罗伯·莱纳,"剧情,喜剧,冒险",8.5,97,105652
教父2,弗朗西斯·福特·科波拉,"剧情,犯罪",9.1,202,163365
疯狂的石头,宁浩,"喜剧,犯罪",8.2,106,258770
阿飞正传,王家卫,"剧情,爱情,犯罪",8.5,94,147684
可可西里,陆川,剧情,8.6,85,112454
小森林,森淳一,剧情,8.9,120,79854
熔炉,黄东赫,剧情,9.1,125,196203
爱在日落黄昏时,理查德·林克莱特,"剧情,爱情",8.7,80,173433
喜剧之王,李力持,"剧情,喜剧,爱情",8.4,85,249224
布达佩斯大饭店,韦斯·安德森,"剧情,喜剧",8.7,100,255805
拯救大兵瑞恩,史蒂文·斯皮尔伯格,"剧情,历史,战争",8.8,169,200591
辩护人,杨宇硕,剧情,9.1,127,160361
爆裂鼓手,达米安·沙泽勒,"剧情,音乐",8.6,107,185990
无耻混蛋,昆汀·塔伦蒂诺,"剧情,犯罪",8.4,153,193762
枪火,杜琪峰,"剧情,动作,犯罪",8.6,84,80738
西西里的美丽传说,朱塞佩·托纳多雷,"剧情,情色,战争",8.7,109,295165
机器人总动员,安德鲁·斯坦顿,"喜剧,爱情,科幻,动画,冒险",9.3,98,447455
上帝之城,费尔南多·梅里尔斯,"剧情,犯罪",8.9,130,140256
活着,张艺谋,"剧情,家庭",9,132,222653
冰川时代,克里斯·韦奇,"喜剧,动画,冒险",8.4,81,238591
飞屋环游记,彼特·道格特,"剧情,喜剧,动画,奇幻,冒险",8.9,96,448742
与狼共舞,凯文·科斯特纳,"剧情,西部,冒险",8.9,181,50081
萤火虫之墓,高畑勋,"剧情,动画,战争",8.7,89,180036
绿里奇迹,弗兰克·德拉邦特,"剧情,悬疑,犯罪,奇幻",8.7,189,89992
疯狂原始人,克里斯·桑德斯,"喜剧,动画,冒险",8.7,98,330478
狮子王,罗伯·明可夫,"剧情,动画,歌舞,家庭,冒险",8.9,89,248340
7号房的礼物,李焕庆,"剧情,喜剧,家庭",8.6,127,137674
无敌破坏王,瑞奇·摩尔,"喜剧,动画,冒险",8.7,101,162760
饮食男女,李安,"剧情,家庭",9,124,153430
杀人回忆,奉俊昊,"剧情,悬疑,惊悚,犯罪",8.6,130,173235
春光乍泄,王家卫,"剧情,爱情,同性",8.7,96,202960
速度与激情5,林诣彬,"剧情,动作,惊悚,犯罪",8.4,130,194150
海盗电台,理查德·柯蒂斯,"剧情,喜剧,音乐",8.6,116,151687
十二怒汉,西德尼·吕美特,剧情,9.3,96,147832
七宗罪,大卫·芬奇,"剧情,悬疑,惊悚,犯罪",8.7,127,390841
加勒比海盗,戈尔·维宾斯基,"动作,奇幻,冒险",8.6,143,289870
两小无猜,杨·塞谬尔,"剧情,喜剧,爱情",8.2,93,286402
战争之王,安德鲁·尼科尔,"剧情,犯罪",8.5,122,152652
英雄本色,吴宇森,"动作,犯罪",8.7,95,123615
撞车,保罗·哈吉斯,"剧情,犯罪",8.6,112,154581
指环王2:双塔奇兵,彼得·杰克逊,"剧情,动作,奇幻,冒险",8.9,179,242303
燕尾蝶,岩井俊二,"剧情,犯罪",8.6,146,97337
荒蛮故事,达米安·斯兹弗隆,"剧情,喜剧,犯罪",8.7,122,98301
雨人,巴瑞·莱文森,剧情,8.6,133,185542
阳光姐妹淘,姜炯哲,"剧情,喜剧",8.8,124,233006
小森林,森淳一,剧情,8.9,111,93862
荒岛余生,罗伯特·泽米吉斯,"剧情,冒险",8.4,143,112340
教父3,弗朗西斯·福特·科波拉,"剧情,犯罪",8.7,162,110504
罗生门,黑泽明,"剧情,悬疑,犯罪",8.7,88,102463
不一样的天空,莱塞·霍尔斯道姆,"剧情,爱情,家庭",8.6,118,72364
发条橙,斯坦利·库布里克,"剧情,科幻,犯罪",8.4,136,161910
海豚湾,路易·西霍尤斯,纪录片,9.3,92,166301
狩猎,托马斯·温特伯格,剧情,9,115,96408
真爱至上,理查德·柯蒂斯,"剧情,喜剧,爱情",8.5,135,271406
偷拐抢骗,盖·里奇,"喜剧,犯罪",8.5,104,100603
卡萨布兰卡,迈克尔·柯蒂斯,"剧情,爱情,战争",8.6,102,107181
勇士,加文·欧康诺,"剧情,家庭,运动",8.9,140,76185
猫鼠游戏,史蒂文·斯皮尔伯格,"剧情,传记,犯罪",8.7,141,182208
红辣椒,今敏,"科幻,动画,悬疑,惊悚",8.8,90,100390
月球,邓肯·琼斯,"剧情,科幻,悬疑",8.5,97,121720
告白,中岛哲也,"剧情,惊悚",8.6,106,294007
廊桥遗梦,克林特·伊斯特伍德,"剧情,爱情",8.5,135,81687
末路狂花,雷德利·斯科特,"剧情,惊悚,犯罪",8.7,130,85612
玩具总动员3,李·昂克里奇,"喜剧,动画,奇幻,冒险",8.7,103,173279
沉默的羔羊,乔纳森·戴米,"剧情,惊悚,犯罪",8.7,118,306683
青蛇,徐克,"剧情,奇幻,古装",8.3,99,184577
超能陆战队,克里斯·威廉姆斯,"喜剧,动作,科幻,动画,冒险",8.6,102,311295
谍影重重3,保罗·格林格拉斯,"动作,悬疑,冒险",8.7,115,156671
穆赫兰道,大卫·林奇,"剧情,悬疑,惊悚",8.3,147,198817
当幸福来敲门,加布里尔·穆奇诺,"剧情,家庭,传记",8.9,117,477777
盗梦空间,克里斯托弗·诺兰,"剧情,动作,科幻,悬疑,冒险",9.2,148,680466
这个杀手不太冷,吕克·贝松,"剧情,动作,犯罪",9.4,133,714954
阳光灿烂的日子,姜文,剧情,8.7,134,235187
哈尔的移动城堡,宫崎骏,"爱情,动画,奇幻,冒险",8.8,119,300202
第六感,M·奈特·沙马兰,"剧情,悬疑,恐怖",8.8,107,202467
玛丽和马克思,亚当·艾略特,"剧情,爱情,动画",8.9,0,213923
谍影重重2,保罗·格林格拉斯,"动作,悬疑,冒险",8.5,108,136583
断背山,李安,"剧情,爱情,同性,家庭",8.5,134,277631
我爱你,秋昌民,"剧情,爱情",9,118,44979
东邪西毒,王家卫,"剧情,动作,爱情,武侠,古装",8.5,100,219442
虎口脱险,杰拉尔·乌里,"喜剧,战争",8.9,132,94305
大话西游之月光宝盒,刘镇伟,"喜剧,动作,爱情,奇幻,冒险,古装",8.9,87,342332
鬼子来了,姜文,"剧情,战争",9.1,139,195140
甜蜜蜜,陈可辛,"剧情,爱情",8.7,118,201297
大卫·戈尔的一生,艾伦·帕克,"剧情,悬疑,犯罪",8.7,130,70074
牯岭街少年杀人事件,杨德昌,"剧情,犯罪",8.7,237,83185
小鞋子,马基德·马基迪,"剧情,家庭,儿童",9.1,89,116229
猜火车,丹尼·博伊尔,"剧情,犯罪",8.5,94,214599
爱在暹罗,楚克‧萨克瑞科,"剧情,爱情,同性,家庭",8.3,150,200419
蓝色大门,易智言,"剧情,爱情,同性",8.2,85,243626
被嫌弃的松子的一生,中岛哲也,"剧情,歌舞",8.9,130,229588
无间道,麦兆辉,"悬疑,惊悚,犯罪",8.9,101,343432
借东西的小人阿莉埃蒂,米林宏昌,"动画,奇幻,冒险",8.7,94,188861
七武士,黑泽明,"剧情,动作,冒险",9.1,160,63728
罗马假日,威廉·惠勒,"剧情,喜剧,爱情",8.9,118,341635
菊次郎的夏天,北野武,"剧情,喜剧",8.7,121,151205
美丽人生,罗伯托·贝尼尼,"剧情,喜剧,爱情",9.5,116,356306
让子弹飞,姜文,"剧情,喜剧,动作,西部",8.7,132,559106
源代码,邓肯·琼斯,"剧情,动作,科幻,惊悚,犯罪",8.3,93,359672
恐怖游轮,克里斯托弗·史密斯,"剧情,悬疑,惊悚",8.3,99,258024
千钧一发,安德鲁·尼科尔,"剧情,科幻",8.7,106,67505
超脱,托尼·凯耶,剧情,8.7,97,146582
蝙蝠侠:黑暗骑士崛起,克里斯托弗·诺兰,"剧情,动作,科幻,惊悚,犯罪",8.5,165,256812
终结者2:审判日,詹姆斯·卡梅隆,"动作,科幻",8.5,137,121526
我是山姆,杰茜·尼尔森,"剧情,家庭",8.8,132,87149
英国病人,安东尼·明格拉,"剧情,爱情,战争",8.4,162,157163
怪兽电力公司,李·昂克里奇,"喜剧,动画,儿童,奇幻",8.6,92,203388
喜宴,李安,"剧情,喜剧,爱情,同性,家庭",8.7,106,110952
魔女宅急便,宫崎骏,"动画,奇幻,冒险",8.4,103,163067
黑客帝国3:矩阵革命,拉娜·沃卓斯基,"动作,科幻",8.5,129,130683
非常嫌疑犯,布莱恩·辛格,"剧情,悬疑,惊悚,犯罪",8.6,106,98726
音乐之声,罗伯特·怀斯,"剧情,爱情,歌舞,家庭,传记",8.9,174,205441
忠犬八公物语,神山征二郎,剧情,9,107,43431
阿甘正传,罗伯特·泽米吉斯,"剧情,爱情",9.4,142,620835
霸王别姬,陈凯歌,"剧情,爱情,同性",9.5,171,522931
被解救的姜戈,昆汀·塔伦蒂诺,"剧情,动作,西部,冒险",8.5,163,226889
穿条纹睡衣的男孩,马克·赫尔曼,"剧情,战争",8.8,94,111404
钢琴家,罗曼·波兰斯基,"剧情,传记,历史,战争",9,150,178538
初恋这件小事,华森·波克彭,"喜剧,爱情",8.3,118,398146
怦然心动,罗伯·莱纳,"剧情,喜剧,爱情",8.9,90,465446
入殓师,泷田洋二郎,剧情,8.8,130,287792
消失的爱人,大卫·芬奇,"剧情,悬疑,惊悚,犯罪",8.7,149,292992
天使爱美丽,让-皮埃尔·热内,"喜剧,爱情",8.7,122,434928
乱世佳人,山姆·伍德,"剧情,爱情,战争",9.2,238,239842
射雕英雄传之东成西就,刘镇伟,"喜剧,古装",8.7,100,238753
血钻,爱德华·兹威克,"剧情,惊悚,冒险",8.5,143,108796
幸福终点站,史蒂文·斯皮尔伯格,"剧情,喜剧,爱情",8.6,128,201356
完美的世界,克林特·伊斯特伍德,"剧情,犯罪",9,138,66677
闻香识女人,马丁·布莱斯,剧情,8.9,157,280698
控方证人,比利·怀德,"剧情,悬疑,犯罪",9.5,116,56958
美国丽人,萨姆·门德斯,"剧情,家庭",8.4,122,160406
千与千寻,宫崎骏,"剧情,动画,奇幻",9.2,125,570484
死亡诗社,彼得·威尔,剧情,8.9,128,238885
萤火之森,大森贵弘,"剧情,爱情,动画,奇幻",8.8,45,128057
达拉斯买家俱乐部,让-马克·瓦雷,"剧情,同性,传记",8.6,117,138515
黑客帝国,拉娜·沃卓斯基,"动作,科幻",8.8,136,243716
魂断蓝桥,茂文·勒鲁瓦,"剧情,爱情,战争",8.8,108,114975
卢旺达饭店,特瑞·乔治,"剧情,历史,战争",8.8,121,100579
阿凡达,詹姆斯·卡梅隆,"动作,科幻,奇幻,冒险",8.6,162,473269
禁闭岛,马丁·斯科塞斯,"剧情,悬疑,惊悚",8.6,138,309943
假如爱有天意,郭在容,"剧情,爱情",8.2,127,197504
飞越疯人院,米洛斯·福尔曼,剧情,9,133,247473
素媛,李濬益,"剧情,家庭",9,123,136499
香水,汤姆·提克威,"剧情,犯罪,奇幻",8.4,147,240738
燃情岁月,爱德华·兹威克,"剧情,爱情,家庭,西部",8.8,133,135297
荒野生存,西恩·潘,"剧情,传记,冒险",8.6,148,111493
新龙门客栈,李惠民,"剧情,动作,武侠,古装",8.4,88,156162
肖申克的救赎,弗兰克·德拉邦特,"剧情,犯罪",9.6,142,743987
秒速5厘米,新海诚,"剧情,爱情,动画",8.4,63,242319
朗读者,史蒂芬·戴德利,"剧情,爱情",8.5,124,248979
爱在黎明破晓前,理查德·林克莱特,"剧情,爱情",8.7,105,187095
麦兜故事,袁建滔,"剧情,喜剧,动画",8.5,0,113048
地球上的星星,阿莫尔·古普特,"剧情,家庭,儿童",8.8,165,65564
记忆碎片,克里斯托弗·诺兰,"剧情,悬疑,惊悚,犯罪",8.5,113,241628
蝴蝶效应,J.麦基·格鲁伯,"剧情,科幻,悬疑,惊悚",8.7,113,339552
海上钢琴师,朱塞佩·托纳多雷,"剧情,音乐",9.2,165,532646
三傻大闹宝莱坞,拉吉库马尔·希拉尼,"剧情,喜剧,爱情,歌舞",9.1,171,585533

输出内容:

【导演】:克里斯托弗·诺兰
【片数】:7
【作品】:星际穿越 蝙蝠侠:黑暗骑士 致命魔术 追随 盗梦空间 蝙蝠侠:黑暗骑士崛起 记忆碎片

【导演】:宫崎骏
【片数】:7
【作品】:龙猫 天空之城 幽灵公主 风之谷 哈尔的移动城堡 魔女宅急便 千与千寻

【导演】:史蒂文·斯皮尔伯格
【片数】:6
【作品】:辛德勒的名单 E.T. 人工智能 拯救大兵瑞恩 猫鼠游戏 幸福终点站

【导演】:王家卫
【片数】:5
【作品】:重庆森林 花样年华 阿飞正传 春光乍泄 东邪西毒

【导演】:大卫·芬奇
【片数】:4
【作品】:搏击俱乐部 本杰明·巴顿奇事 七宗罪 消失的爱人

【导演】:昆汀·塔伦蒂诺
【片数】:4
【作品】:罪恶之城 低俗小说 无耻混蛋 被解救的姜戈

【导演】:李安
【片数】:4
【作品】:少年派的奇幻漂流 饮食男女 断背山 喜宴

【导演】:彼得·杰克逊
【片数】:3
【作品】:指环王3:王者无敌 指环王1:魔戒再现 指环王2:双塔奇兵

【导演】:刘镇伟
【片数】:3
【作品】:大话西游之大圣娶亲 大话西游之月光宝盒 射雕英雄传之东成西就

【导演】:朱塞佩·托纳多雷
【片数】:3
【作品】:天堂电影院 西西里的美丽传说 海上钢琴师

【导演】:吴宇森
【片数】:3
【作品】:变脸 纵横四海 英雄本色

【导演】:弗朗西斯·福特·科波拉
【片数】:3
【作品】:教父 教父2 教父3

【导演】:理查德·柯蒂斯
【片数】:3
【作品】:时空恋旅人 海盗电台 真爱至上

【导演】:詹姆斯·卡梅隆
【片数】:3
【作品】:泰坦尼克号 终结者2:审判日 阿凡达

【导演】:姜文
【片数】:3
【作品】:阳光灿烂的日子 鬼子来了 让子弹飞

注:抽空把没过的下载来看看 ^_^

 (续上题)不用循环遍历,快速生成字典且降序排列

lst = df["导演"].tolist()

import numpy as np
dict(sorted(dict(zip(*np.unique(lst, return_counts=1))).items(),key=lambda x:x[1],reverse=True))

from collections import Counter
dict(Counter(lst))  # 当然Counter()更简单,返回的就是降序字典

4. 简洁、对称又好理解的二叉树遍历代码

class bTree:
 
    def __init__(self, rooot=None, lchild=None, rchild=None):
        self.root = root
        self.left = lchild
        self.right = rchild
 
    def __repr__(self):
        if not (self.left or self.right): return f'{self.root}'
        return f'[{self.left if self.left else "-"}<{self.root}>{self.right if self.right else "-"}]'

    def preOrder(self):
        '''前序遍历'''
        if not self: return []
        return [self.root]+bTree.preOrder(self.left)+bTree.preOrder(self.right)
 
    def inOrder(self):
        '''中序遍历'''
        if not self: return []
        return bTree.inOrder(self.left)+[self.root]+bTree.inOrder(self.right)
 
    def postOrder(self):
        '''后序遍历'''
        if not self: return []
        return bTree.postOrder(self.left)+bTree.postOrder(self.right)+[self.root]
 
    def Height(self):
        if not self: return 0
        lH = bTree.Height(self.left)
        rH = bTree.Height(self.right)
        return max(lH,rH)+1


exp = bTree('+')
exp.left  = bTree('*')
exp.right = bTree('/')

exp.left.left   = bTree(1)
exp.left.right  = bTree(2)
exp.right.left  = bTree(3)
exp.right.right = bTree(4)

order = exp.inOrder()
print(order)

tmp = ' '.join(map(str,order))
print(tmp,'=',eval(tmp))

print(exp)
print(repr(exp))

print(exp.preOrder())
print(exp.postOrder())

  • 51
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 26
    评论
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hann Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值