文件中包含有2018和2019手机销售榜单数据(市场份额百分数),请根据要求升序输出分析结果: 1.输入'1'时,以列表形式在两行中分别输出2019年和2018年上榜品牌 1.输入'2'时,以列表形式输出2019年和2018年都上榜的品牌 1.输入'3'时,以列表形式输出2019年和2018年上榜的所有品牌 1.输入'4'时,以列表形式输出2019年新上榜品牌 1.输入'5'时,以列表形式输出2019年新上榜和落榜品牌
时间: 2024-02-25 17:52:53 浏览: 46
我了解了,这是一个文件数据分析的问题。以下是对应的代码实现:
```python
with open("手机品牌.txt", "r", encoding="utf-8") as f:
# 读取文件内容
data = f.readlines()
# 去除换行符,并将每个品牌的数据转换为字典形式
data = [eval(x.strip()) for x in data]
# 获取2018年和2019年各自的品牌列表
year2018 = [x["品牌"] for x in data if x["年份"] == "2018年"]
year2019 = [x["品牌"] for x in data if x["年份"] == "2019年"]
# 获取2018年和2019年都上榜的品牌列表
both_years = [x for x in year2018 if x in year2019]
# 获取2019年新上榜的品牌列表
new_2019 = [x["品牌"] for x in data if x["年份"] == "2019年" and x["品牌"] not in year2018]
# 获取2019年新上榜和落榜的品牌列表
new_and_out = []
for x in data:
if x["年份"] == "2019年":
if x["品牌"] not in year2018:
new_and_out.append(x["品牌"] + " (新上榜)")
elif x["品牌"] not in year2019:
new_and_out.append(x["品牌"] + " (落榜)")
else:
new_and_out.append(x["品牌"])
# 根据输入输出相应结果
while True:
choice = input("请输入要求的编号(1-5):")
if choice == "1":
print("2019年上榜品牌:\n", year2019)
print("2018年上榜品牌:\n", year2018)
elif choice == "2":
print("2019年和2018年都上榜的品牌:\n", both_years)
elif choice == "3":
print("2019年和2018年上榜的品牌:\n", year2019 + [x for x in year2018 if x not in year2019])
elif choice == "4":
print("2019年新上榜品牌:\n", new_2019)
elif choice == "5":
print("2019年新上榜和落榜品牌:\n", new_and_out)
else:
print("输入有误,请重新输入!")
```
注意:这里的文件名为“手机品牌.txt”,其中每个品牌的数据格式为字典,包括“品牌”和“年份”两个键值对。
阅读全文