python用openpyxl包操作xlsx文件,统计表中合作电影数目最多的两个演员
创始人
2024-05-28 18:38:39
0

题目🎉🎉🎉:

编程完成下面任务:

已知excel文件“电影导演演员信息表.xlsx”如下图所示:

🍳🍳🍳要求:使用 openpyxl 包操作打开此文件,编写程序统计在此表中合作电影

数目最多的两个演员。

思路:

🌏 求得每个演员,出演的电影。用字典表示这个关系:关键字:演员,值:电影,用集合表示。

🌏 遍历所有的演员,两两比较求出演电影的交集

🌏 统计出集合元素个数最多的两个演员。


代码:

from openpyxl import load_workbookwb=load_workbook('电影导演演员信息表.xlsx')sheet=wb.worksheets[0]
actor_films=dict()
for index,row in enumerate(sheet.rows):if index==0:continuefilm,actors=row[0].value,row[2].value.split(',')for actor in actors:actor_films[actor]=actor_films.get(actor,set())| {film}print(actor_films)
actors=actor_films.keys()
actors=tuple(actors)
print(actors)
max=0
co_actors=()
for index,actor1 in enumerate(actors):for actor2 in actors[index+1:]:common=len(actor_films[actor1]&actor_films[actor2])if common > max:max=commonco_actors=(actor1,actor2)print(max,co_actors)

知识点:

  1. set

set()函数创建一个无序不重复元素集,相关的运算有:交、差、并、补等,语法:

classset([iterable])

eg:

aihao=set(['dance','sing'])
aihao=aihao|{'play'}
item="read" aihao=aihao|{item}
print(aihao)
import random
a=set() #创建一个空集合
x = set('runoob')
y = set('google')
print(x, y)
print(x | y) #并运算
print(x & y) #交运算
print(x-y)#差运算

👀 交集&:x&y,返回一个新的集合,包括同时在集合 x 和 y 中的共同元素。

👀 并集 |:x|y,返回一个新的集合,包括集合 x 和 y 中所有元素。

👀 差集 -:x-y,返回一个新的集合,包括在集合 x 中但不在集合 y 中的元素。

👀 补集 ^:x^y,返回一个新的集合,包括集合 x 和 y 的非共同元素。

  1. tuple

tuple 元组不可以修改,速度比 list[]快

tup1=('zhang','dance','singing')
for index,item in enumerate(tup1):print(index,item)
  1. Enumerate()

enumerate()是 Python 中的内置函数,将可迭代/可遍历的的数据对象组合为

一个索引序列,同时列出数据和数据下标,一般用在 for 循环中。,语法:

enumerate(sequence,[start=0])

eg 👀:

list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):print(index, item)
  1. dict

字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key 和 value 对用冒

号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{}中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一

eg 👀:

# 字典定义及初始化 1
dict=dict()#初始化一个空字典
dict['a']={'1','2'}
print(dict)
# 字典定义及初始化 2
dict = {'a': 1, 'b': 2, 'b': '3'}
print(dict['b'])
keys=dict.keys()#输出字典的关键字

其他方法:

dict.get(key, default=None)

返回指定键的值,如果值不在字典中返回 default 值

dict.get(‘a’,set())
dict.has_key(key)
#如果键在字典 dict 里返回 true,否则返回 false

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...