目录
简介
在Python中,列表,元组,词典和集合是用于存储和组织数据集合的基本数据结构。这些数据结构中的每一个都有独特的特征,适合不同的目的。
列出
列表是订购的集合,可以存储不同数据类型的多个项目。它们用方括号表示,可以在创建后修改。列表允许重复元素并提供索引和切片操作以访问和操纵数据。
示例:
fruits = ['apple', 'banana', 'orange']
fruits.append('kiwi')
print(fruits) # Output: ['apple', 'banana', 'orange', 'kiwi']
元组
元组类似于列表,但是不变的,这意味着它们在创建后无法修改它们。它们用括号或简单地用逗号分开的项目来表示它们。元组通常用于表示应保持不变的相关值的集合。
示例:
point = (3, 5)
x, y = point
print(x, y) # Output: 3 5
字典
字典是钥匙值对的无序集合。它们用卷曲括号表示,由映射到其相应值的独特键组成。词典根据其键提供了快速访问值的访问,对于以结构化的方式存储和检索数据很有用。
示例:
person = {'name': 'John', 'age': 25, 'city': 'New York'}
print(person['age']) # Output: 25
设置
集合是独特元素的无序集合。它们用卷曲支架或使用set()
构造函数表示。集合不允许重复的值,并提供诸如联合,交集和差异之类的操作。它们通常用于诸如消除重复或测试成员资格之类的任务。
示例:
fruits = {'apple', 'banana', 'orange'}
fruits.add('kiwi')
print(fruits) # Output: {'apple', 'banana', 'orange', 'kiwi'}
挑战:电影建议
在此挑战中,您将使用列表,元组,词典和集合创建电影推荐系统。您将列出电影列表,每部都以电影标题,类型和评分为单词。您的任务是根据用户的喜好向用户推荐电影。
- 创建电影列表:
- 每部电影都应用以下键表示为词典:“标题”,“类型”和“评级”。
- 在您的列表中至少包括10部电影,涵盖各种流派和评分。
- 向用户询问其首选类型:
- 提示用户输入自己选择的类型。
- 将用户的输入存储在变量中。
- 流派过滤电影:
- 遍历电影列表,并创建一个新列表,该列表仅包括与用户首选类型相匹配的电影。
- 将过滤的电影存储在新列表中。
- 向用户询问其首选最低评分:
- 提示用户输入他们想要推荐电影的最低评分。
- 将用户的输入存储在变量中。
- 通过评分过滤电影:
- 通过过滤的电影列表进行迭代,并创建另一个新列表,该列表仅包括大于或等于用户首选最低评分的电影。
- 将最终过滤电影存储在新列表中。
- 显示电影建议:
- 如果最终过滤电影列表中有电影,请向用户显示推荐电影。
- 如果列表中没有电影,请告知用户没有建议可用。
示例输出:
Welcome to Movie Recommendations!
Please enter your preferred genre: Action
Please enter your preferred minimum rating (1-10): 7
Based on your preferences, we recommend the following movies:
1. Title: The Dark Knight | Genre: Action | Rating: 9.0
2. Title: Inception | Genre: Action | Rating: 8.8
3. Title: Mad Max: Fury Road| Genre: Action | Rating: 8.1
最终代码:
movies = [
{"title": "The Dark Knight", "genre": "Action", "rating": 9.0},
{"title": "Inception", "genre": "Action", "rating": 8.8},
{"title": "Mad Max: Fury Road", "genre": "Action", "rating": 8.1},
# Add more movies to the list
]
# Ask for user's preferences
preferred_genre = input("Please enter your preferred genre: ")
preferred_rating = float(input("Please enter your preferred minimum rating (1-10): "))
# Filter movies by genre
filtered_movies = [movie for movie in movies if movie["genre"] == preferred_genre]
# Filter movies by rating
recommended_movies = [movie for movie in filtered_movies if movie["rating"] >= preferred_rating]
# Display recommendations
print("\nBased on your preferences, we recommend the following movies:\n")
if recommended_movies:
for i, movie in enumerate(recommended_movies, 1):
print(f"{i}. Title: {movie['title']} | Genre: {movie['genre']} | Rating: {movie['rating']}")
else:
print("No recommendations available.")
这项挑战将帮助您练习根据用户偏好的列表,词典和过滤数据的工作。它还将为您提供实施简单推荐系统的实践经验。通过添加更多功能或数据使其更有趣,可以随意扩大挑战!