刚刚看的3部电影,,

<独家试爱>-2006 ftp://218.206.201.237/183/ 独家试爱[39av.com].rmvb
<十分爱>-2007 ftp://202.116.222.188/Entertainment/mv/%D7%EE%BD%FC%B8%FC%D0%C2%A1%BE7%D4%C2%A1%BF/07.02_%CA%AE%B7%D6%B0%AE(%D4%C1%D3%EF)%5B2007%C4%EA%D6%D0%B9%FA%CF%E3%B8%DB%B0%AE%C7%E9%5D%A1%BE%FD%88%F6%A9%8Cm%87%E5%83%CC%BA%CA%D6Q%A3%AE%87%E5%A1%C1%A1%BF/%D3%B0%CA%D3% <我的最爱>-2008 ftp://ftp6.ffdy.cn:1503/我的最爱/08最新青春爱情大片《我的最爱》DVD中字.rmvb 由于先看的<十分爱>感觉剧中的情节设计的还算可以.尤其是最后的那句"这个世界,什么都是障眼法,看到的,未必是真实的,真实的,你没那么幸运看得到",感觉剧中所有的设计都是围绕这句话来展开的.这个影片中有一段默默的爱情,就像一朵小花,默默的无人问津,独自生长,而当它生命已逝之后,确又那么让人无法忘怀.它感动了我.
好的,那么在统计三人组合的时候,可以增加一个判断条件来判断是否已经有两个三人组合涵盖了这个二人组合的参演电影。如果已经涵盖,则不再统计这个二人组合。 修改后的代码如下: ```python import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('电影信息统计.xlsx') # 获取电影信息sheet movies_sheet = workbook['电影信息'] # 获取演员信息sheet actors_sheet = workbook['演员信息'] # 新增演员组合参演统计sheet combos_sheet = workbook.create_sheet('演员组合参演统计') # 初始化演员组合参演数据 combo_data = {} # 统计三人组合 for i in range(2, actors_sheet.max_row + 1): actor1 = actors_sheet.cell(row=i, column=2).value for j in range(i + 1, actors_sheet.max_row + 1): actor2 = actors_sheet.cell(row=j, column=2).value for k in range(j + 1, actors_sheet.max_row + 1): actor3 = actors_sheet.cell(row=k, column=2).value combo = ','.join(sorted([actor1, actor2, actor3])) movies = set() for row in range(2, movies_sheet.max_row + 1): if actor1 in movies_sheet.cell(row=row, column=4).value and \ actor2 in movies_sheet.cell(row=row, column=4).value and \ actor3 in movies_sheet.cell(row=row, column=4).value: movies.add(movies_sheet.cell(row=row, column=1).value) if combo in combo_data: combo_data[combo]['movies'].update(movies) else: combo_data[combo] = {'count': 0, 'movies': movies} if len(combo_data[combo]['movies']) >= 2: combo_data[combo]['count'] += 1 if len(combo_data[combo]['movies']) >= 1: for sub_combo in combo_data.keys(): if combo != sub_combo and len(sub_combo.split(',')) == 2 and \ actor1 in sub_combo and actor2 in sub_combo and len(combo_data[sub_combo]['movies']) < 2 and \ len(combo_data[combo]['movies'].difference(combo_data[sub_combo]['movies'])) == 0: break else: continue for sub_combo in combo_data.keys(): if combo != sub_combo and len(sub_combo.split(',')) == 2 and \ actor2 in sub_combo and actor3 in sub_combo and len(combo_data[sub_combo]['movies']) < 2 and \ len(combo_data[combo]['movies'].difference(combo_data[sub_combo]['movies'])) == 0: break else: continue for sub_combo in combo_data.keys(): if combo != sub_combo and len(sub_combo.split(',')) == 2 and \ actor1 in sub_combo and actor3 in sub_combo and len(combo_data[sub_combo]['movies']) < 2 and \ len(combo_data[combo]['movies'].difference(combo_data[sub_combo]['movies'])) == 0: break else: combo_data[combo]['count'] += 1 # 统计二人组合 for i in range(2, actors_sheet.max_row + 1): actor1 = actors_sheet.cell(row=i, column=2).value for j in range(i + 1, actors_sheet.max_row + 1): actor2 = actors_sheet.cell(row=j, column=2).value combo = ','.join(sorted([actor1, actor2])) if combo in combo_data: continue movies = set() for row in range(2, movies_sheet.max_row + 1): if actor1 in movies_sheet.cell(row=row, column=4).value and \ actor2 in movies_sheet.cell(row=row, column=4).value: movies.add(movies_sheet.cell(row=row, column=1).value) combo_data[combo] = {'count': len(movies), 'movies': movies} # 将演员组合参演数据写入Excel combos_sheet.cell(row=1, column=1, value='演员组合') combos_sheet.cell(row=1, column=2, value='演员组合参演电影数量') combos_sheet.cell(row=1, column=3, value='演员组合参演电影列表') row_num = 2 for combo in sorted(combo_data.keys(), key=lambda x: (-combo_data[x]['count'], x)): if len(combo.split(',')) == 2 and combo_data[combo]['count'] == 0: continue combos_sheet.cell(row=row_num, column=1, value=combo) combos_sheet.cell(row=row_num, column=2, value=combo_data[combo]['count']) combos_sheet.cell(row=row_num, column=3, value=','.join(sorted(combo_data[combo]['movies']))) row_num += 1 # 保存Excel文件 workbook.save('电影信息统计.xlsx') ``` 在统计三人组合的时候,增加了三个for循环和一个判断语句。这三个for循环用于判断一个二人组合是否已经被两个三人组合涵盖,判断语句用于判断是否需要统计这个二人组合。如果已经被涵盖,则不再统计这个二人组合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值