- 实验目的
- 了解python中组合数据类型
- 掌握各种组合数据类型处理函数
- 实验内容
- 已知列表list_1=[7,8,9,10]和list_2=[3,4],请将这两个列表合并位一个列表,并将合并后的列表中的元素按降序排列。
list_1 = [7, 8, 9, 10] list_2 = [3, 4] merged_list = list_1 + list_2 merged_list.sort(reverse=True) print(merged_list)
- 已知元组tup_1=(‘p’,’y’,’t’,[‘o’,’n’]),请向元组的最后一个列表中添加新元素’h’
list_1 = [7, 8, 9, 10] list_2 = [3, 4] merged_list = list_1 + list_2 merged_list.sort(reverse=True) print(merged_list)
- 已知字符串str=’sdfghjkkijuhgfrd’,请统计该字符串中各字母出现的次数
str_example = 'sdfghjkkijuhgfrd' letter_counts = {} for letter in str_example: if letter.isalpha(): letter_counts[letter] = letter_counts.get(letter, 0) + 1 for letter, count in letter_counts.items(): print(f"{letter}: {count} 次")
- 已知列表list_1=[1,2,1,2,3,2,5,6,7,5,9],请删除列表中的重复数据。
list_1 = [1, 2, 1, 2, 3, 2, 5, 6, 7, 5, 9] unique_list = list(set(list_1)) print(unique_list)
- 请完成实训案例:十大歌手 计票机制 手机通讯录
def calculate_average_score(scores): scores.sort() trimmed_scores = scores[1:-1] average_score = sum(trimmed_scores) / len(trimmed_scores) return average_score def main(): num_players = 3 num_judges = 10 all_scores = [] for _ in range(num_players): player_scores = [float(input(f"请输入第{_ + 1}位选手的第{j + 1}个评委的分数: ")) for j in range(num_judges)] all_scores.append(player_scores) for i, player_scores in enumerate(all_scores): average_score = calculate_average_score(player_scores) print(f"第{i + 1}位选手的平均分为: {average_score}") if __name__ == "__main__": main()
class Contact: def __init__(self, name, phone_number): self.name = name self.phone_number = phone_number class PhoneBook: def __init__(self): self.contacts = [] def add_contact(self, name, phone_number): contact = Contact(name, phone_number) self.contacts.append(contact) print(f"联系人 {name} 已添加到通讯录") def view_contacts(self): if not self.contacts: print("通讯录为空") else: print("通讯录:") for contact in self.contacts: print(f"{contact.name}: {contact.phone_number}") def delete_contact(self, name): for contact in self.contacts: if contact.name == name: self.contacts.remove(contact) print(f"联系人 {name} 已从通讯录中删除") return print(f"未找到联系人 {name}") def update_contact(self, name, new_phone_number): for contact in self.contacts: if contact.name == name: contact.phone_number = new_phone_number print(f"联系人 {name} 的联系方式已更新为 {new_phone_number}") return print(f"未找到联系人 {name}") def search_contact(self, name): for contact in self.contacts: if contact.name == name: print(f"联系人 {name} 的联系方式为 {contact.phone_number}") return print(f"未找到联系人 {name}") def main(): phone_book = PhoneBook() while True: print("\n请选择操作:") print("1. 添加联系人") print("2. 查看通讯录") print("3. 删除联系人") print("4. 修改联系人信息") print("5. 查找联系人") print("0. 退出") choice = input("请输入数字选择操作: ") if choice == "1": name = input("请输入联系人姓名: ") phone_number = input("请输入联系人电话号码: ") phone_book.add_contact(name, phone_number) elif choice == "2": phone_book.view_contacts() elif choice == "3": name = input("请输入要删除的联系人姓名: ") phone_book.delete_contact(name) elif choice == "4": name = input("请输入要修改的联系人姓名: ") new_phone_number = input("请输入新的电话号码: ") phone_book.update_contact(name, new_phone_number) elif choice == "5": name = input("请输入要查找的联系人姓名: ") phone_book.search_contact(name) elif choice == "0": print("程序已退出") break else: print("无效的选择,请重新输入") if __name__ == "__main__": main()
class Player: def __init__(self, name, votes): self.name = name self.votes = votes def main(): num_players = int(input("请输入参赛选手的人数: ")) players = [] for i in range(num_players): name = input(f"请输入第{i + 1}位选手的姓名: ") votes = int(input(f"请输入第{i + 1}位选手的票数: ")) player = Player(name, votes) players.append(player) # 按照票数降序排序 sorted_players = sorted(players, key=lambda x: x.votes, reverse=True) # 输出排序后的成绩 print("\n排名结果:") for i, player in enumerate(sorted_players): print(f"{i + 1}. {player.name}: {player.votes} 票") if __name__ == "__main__": main()