类型:集合

描述

文件中包含有2018和2019手机销售榜单数据(市场份额百分数),请根据要求升序输出分析结果:

  1. 输入’1’时,以列表形式在两行中分别输出2019年和2018年上榜品牌
  2. 输入’2’时,以列表形式输出2019年和2018年都上榜的品牌
  3. 输入’3’时,以列表形式输出2019年和2018年上榜的所有品牌
  4. 输入’4’时,以列表形式输出2019年新上榜品牌
  5. 输入’5’时,以列表形式输出2019年新上榜和落榜品牌

示例

输入:5

输出:[‘中兴’, ‘联想’, ‘金立’]

参考答案

with open('sale2019.csv','r',encoding='utf-8') as data2019:
	sale2019 = [[line.strip().split(',')[0],float(line.strip().split(',')[1])] for line in data2019]
with open('sale2018.csv','r',encoding='utf-8') as data2018:
	sale2018 = [[line.strip().split(',')[0],float(line.strip().split(',')[1])] for line in data2018]

saleSet2019 = { x[0] for x in sale2019 }
saleSet2018 = { x[0] for x in sale2018 }
n = input()
if n == '1':
	# 1.输入'1'时,以集合形式在两行中分别输出2019年和2018年上榜品牌
	print(sorted(saleSet2019))
	print(sorted(saleSet2018))
elif n == '2':
	# 1.输入'2'时,以集合形式输出2019年和2018年都上榜的品牌
	# 两年都上榜的品牌,交集 s & t
	s2018and2019 = saleSet2019 & saleSet2018
	print(sorted(s2018and2019))
elif n == '3':
	# 1.输入'3'时,以集合形式输出2019年和2018年上榜的所有品牌
	# 两年上榜的所有品牌,并集 s | t
	s20182019all = saleSet2019 | saleSet2018
	print(sorted(s20182019all))
elif n == '4':
	# 1.输入'4'时,以集合形式输出2019年新上榜品牌
	# 新上榜品牌,差补  s - t
	s2019new = saleSet2019 - saleSet2018
	print(sorted(s2019new))  # {'联想', '中兴'}
elif n == '5':
	# 1.输入'5'时,以集合形式输出2019年新上榜和落榜品牌
	# 新上榜与落榜品牌,对称差分, s ^ t
	newAndold = saleSet2019 ^ saleSet2018
	print(sorted(newAndold))  # {'中兴', '联想', '金立'}
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐