当前位置: 首页 > news >正文

房地产集团网站欣赏做期权注册网站

房地产集团网站欣赏,做期权注册网站,网站版面的图文是怎么做的,怎么制作网站网页集合的奇妙世界#xff1a;Python集合的经典、避坑与实战 内容简介 本系列文章是为 Python3 学习者精心设计的一套全面、实用的学习指南#xff0c;旨在帮助读者从基础入门到项目实战#xff0c;全面提升编程能力。文章结构由 5 个版块组成#xff0c;内容层层递进#x…集合的奇妙世界Python集合的经典、避坑与实战 内容简介 本系列文章是为 Python3 学习者精心设计的一套全面、实用的学习指南旨在帮助读者从基础入门到项目实战全面提升编程能力。文章结构由 5 个版块组成内容层层递进逻辑清晰。 基础速通n 个浓缩提炼的核心知识点夯实编程基础经典范例10 个贴近实际的应用场景深入理解 Python3 的编程技巧和应用方法避坑宝典10 个典型错误解析提供解决方案帮助读者避免常见的编程陷阱水平考试10 道测试题目检验学习成果附有标准答案以便自我评估实战案例3 个迷你项目开发带领读者从需求分析到代码实现掌握项目开发的完整流程。 无论你是 Python3 初学者还是希望提升实战能力的开发者本系列文章都能为你提供清晰的学习路径和实用的编程技巧助你快速成长为 Python3 编程高手。 阅读建议 初学者建议从 “基础速通” 开始系统学习 Python3 的基础知识然后通过 “经典范例” 和 “避坑宝典” 加深理解最后通过 “水平考试” 和 “实战案例” 巩固所学内容有经验的开发者可以直接跳转到 “经典范例” 和 “避坑宝典”快速掌握 Python3 的高级应用技巧和常见错误处理方法然后通过 “实战案例” 提升项目开发能力选择性学习如果读者对某个特定主题感兴趣可以直接选择相应版块学习。各版块内容既相互独立又逻辑关联方便读者根据自身需求灵活选择测试与巩固完成每个版块的学习后建议通过 “水平考试” 检验学习效果并通过 “实战案例” 将理论知识转化为实际技能项目实战优先如果你更倾向于实战学习可以直接从 “实战案例” 入手边做边学遇到问题再回溯相关知识点。 一、基础速通 在 Python 中集合set是一种无序且不重复的可变容器用于存储唯一元素。集合的主要特点包括 无序性集合中的元素没有固定顺序。唯一性集合中的元素不会重复。可变性集合可以动态添加或删除元素。 集合常用于去重、成员检测及数学运算如并集、交集等。 1. 创建集合 可以使用花括号 {} 或 set() 函数创建集合 # 使用花括号 my_set {1, 2, 3} print(my_set) # 输出: {1, 2, 3}# 使用 set() 函数 another_set set([4, 5, 6]) print(another_set) # 输出: {4, 5, 6}注意空集合必须用 set() 创建{} 会创建空字典。 2. 集合操作 集合支持多种操作如添加、删除、成员检测等 # 添加元素 my_set.add(4) print(my_set) # 输出: {1, 2, 3, 4}# 删除元素 my_set.remove(2) print(my_set) # 输出: {1, 3, 4}# 成员检测 print(3 in my_set) # 输出: True3. 集合运算 集合支持并集、交集、差集等数学运算 set1 {1, 2, 3} set2 {3, 4, 5}# 并集 print(set1 | set2) # 输出: {1, 2, 3, 4, 5}# 交集 print(set1 set2) # 输出: {3}# 差集 print(set1 - set2) # 输出: {1, 2}# 对称差集 print(set1 ^ set2) # 输出: {1, 2, 4, 5}4. 集合方法 常用集合方法包括 add(element)添加元素。remove(element)移除元素元素不存在时抛出异常。discard(element)移除元素元素不存在时不报错。pop()随机移除并返回一个元素。clear()清空集合。union(other_set)返回并集。intersection(other_set)返回交集。difference(other_set)返回差集。symmetric_difference(other_set)返回对称差集。 5. 示例 # 创建集合 fruits {apple, banana, cherry}# 添加元素 fruits.add(orange)# 移除元素 fruits.discard(banana)# 集合运算 vegetables {carrot, potato, tomato} produce fruits.union(vegetables)print(produce) # 输出: {apple, cherry, orange, carrot, potato, tomato}小结 集合是 Python 中用于存储唯一元素的无序容器支持多种操作和数学运算适合去重和成员检测等场景。 二、经典范例 Python 的集合set由于其无序性、唯一性和高效性在许多场景中非常有用。以下是集合的经典应用场景及代码演示 1. 去重 集合常用于从列表或其他可迭代对象中去除重复元素。 # 示例列表去重 data [1, 2, 2, 3, 4, 4, 5] unique_data set(data) # 转换为集合去重 print(unique_data) # 输出: {1, 2, 3, 4, 5}# 如果需要结果仍然是列表 unique_list list(unique_data) print(unique_list) # 输出: [1, 2, 3, 4, 5]2. 成员检测 集合的成员检测效率非常高时间复杂度为 O(1)适合用于快速判断元素是否存在。 # 示例检查元素是否在集合中 fruits {apple, banana, cherry} print(banana in fruits) # 输出: True print(orange in fruits) # 输出: False3. 集合运算 集合支持并集、交集、差集等数学运算适合处理需要比较或合并数据的场景。 # 示例集合运算 set1 {1, 2, 3, 4} set2 {3, 4, 5, 6}# 并集 union_set set1 | set2 print(union_set) # 输出: {1, 2, 3, 4, 5, 6}# 交集 intersection_set set1 set2 print(intersection_set) # 输出: {3, 4}# 差集 difference_set set1 - set2 print(difference_set) # 输出: {1, 2}# 对称差集只存在于一个集合中的元素 symmetric_difference_set set1 ^ set2 print(symmetric_difference_set) # 输出: {1, 2, 5, 6}4. 过滤重复数据 集合可以快速过滤掉重复数据例如从日志中提取唯一的 IP 地址。 # 示例从日志中提取唯一 IP 地址 logs [192.168.1.1 - GET /index.html,192.168.1.2 - GET /about.html,192.168.1.1 - POST /login,192.168.1.3 - GET /index.html, ]# 提取 IP 地址 ips set(log.split()[0] for log in logs) print(ips) # 输出: {192.168.1.1, 192.168.1.2, 192.168.1.3}5. 查找共同元素 集合的交集运算可以快速找到两个数据集中的共同元素。 # 示例查找两个列表中的共同元素 list1 [1, 2, 3, 4, 5] list2 [4, 5, 6, 7, 8]common_elements set(list1) set(list2) print(common_elements) # 输出: {4, 5}6. 集合的差集运算 差集运算可以用于从一个集合中剔除另一个集合中的元素。 # 示例从集合中剔除特定元素 allowed_fruits {apple, banana, cherry, orange} forbidden_fruits {banana, orange}safe_fruits allowed_fruits - forbidden_fruits print(safe_fruits) # 输出: {apple, cherry}7. 统计唯一值 集合可以用于统计唯一值的数量。 # 示例统计列表中唯一值的数量 data [1, 2, 2, 3, 3, 3, 4, 4, 4, 4] unique_count len(set(data)) print(unique_count) # 输出: 48. 集合的对称差集 对称差集可以用于找出两个集合中不重复的元素。 # 示例找出两个集合中不重复的元素 set1 {1, 2, 3, 4} set2 {3, 4, 5, 6}symmetric_diff set1 ^ set2 print(symmetric_diff) # 输出: {1, 2, 5, 6}9. 集合的子集和超集检测 集合提供了方法用于检测一个集合是否是另一个集合的子集或超集。 # 示例子集和超集检测 set1 {1, 2, 3} set2 {1, 2, 3, 4, 5}# 检测子集 print(set1.issubset(set2)) # 输出: True# 检测超集 print(set2.issuperset(set1)) # 输出: True10. 集合的更新操作 集合支持批量添加元素或与其他集合合并。 # 示例更新集合 fruits {apple, banana} fruits.update([cherry, orange]) # 添加多个元素 print(fruits) # 输出: {apple, banana, cherry, orange}# 与其他集合合并 more_fruits {mango, grape} fruits.update(more_fruits) print(fruits) # 输出: {apple, banana, cherry, orange, mango, grape}小结 集合在 Python 中的应用场景非常广泛包括去重、成员检测、集合运算、过滤数据等。由于其高效的特性集合在处理大量数据时非常有用。通过合理使用集合可以显著提升代码的性能和可读性。 三、避坑宝典 在使用 Python 集合时可能会遇到一些典型错误。以下是常见的错误及其原因分析、纠正方法并通过代码演示说明。 1. 尝试创建包含可变元素的集合 集合中的元素必须是不可变的如整数、字符串、元组等如果尝试将可变对象如列表、字典放入集合中会引发 TypeError。 错误代码 # 尝试将列表放入集合 my_set {1, 2, [3, 4]} # 列表是可变的错误原因集合要求元素必须是可哈希的不可变的而列表是可变对象。 纠正方法 将列表转换为元组不可变后再放入集合。 # 将列表转换为元组 my_set {1, 2, tuple([3, 4])} print(my_set) # 输出: {1, 2, (3, 4)}2. 混淆集合和字典的创建 空集合必须使用 set() 创建使用 {} 会创建空字典。 错误代码 # 尝试创建空集合 my_set {} print(type(my_set)) # 输出: class dict错误原因{} 是创建空字典的语法而不是空集合。 纠正方法 使用 set() 创建空集合。 # 正确创建空集合 my_set set() print(type(my_set)) # 输出: class set3. 尝试修改集合中的元素 集合中的元素必须是不可变的因此不能直接修改集合中的元素。 错误代码 # 尝试修改集合中的元素 my_set {1, 2, 3} my_set[0] 10 # 集合不支持索引和赋值错误原因集合是无序的不支持索引操作且元素不可变。 纠正方法 如果需要修改集合中的元素可以先移除旧元素再添加新元素。 # 移除旧元素并添加新元素 my_set {1, 2, 3} my_set.remove(1) my_set.add(10) print(my_set) # 输出: {2, 3, 10}4. 使用 remove() 删除不存在的元素 使用 remove() 删除集合中不存在的元素会引发 KeyError。 错误代码 # 尝试删除不存在的元素 my_set {1, 2, 3} my_set.remove(4) # 4 不在集合中错误原因remove() 方法要求元素必须存在于集合中。 纠正方法 使用 discard() 方法它不会在元素不存在时引发错误。 # 使用 discard() 安全删除元素 my_set {1, 2, 3} my_set.discard(4) # 不会报错 print(my_set) # 输出: {1, 2, 3}5. 混淆集合和列表的操作 集合是无序的不支持索引操作而列表是有序的支持索引操作。 错误代码 # 尝试对集合进行索引操作 my_set {1, 2, 3} print(my_set[0]) # 集合不支持索引错误原因集合是无序的没有索引的概念。 纠正方法 如果需要索引操作可以将集合转换为列表。 # 将集合转换为列表后进行索引操作 my_set {1, 2, 3} my_list list(my_set) print(my_list[0]) # 输出: 1注意集合无序顺序可能不同6. 忽略集合的不可重复性 集合中的元素是唯一的重复添加相同元素不会改变集合。 错误代码 # 重复添加相同元素 my_set {1, 2, 3} my_set.add(2) # 2 已经存在 print(my_set) # 输出: {1, 2, 3}错误原因集合会自动去重重复添加相同元素不会生效。 纠正方法 无需纠正这是集合的正常行为。如果需要允许重复元素应使用列表。 7. 混淆 update() 和 add() add() 用于添加单个元素而 update() 用于添加多个元素如列表、集合等。 错误代码 # 错误使用 add() 添加多个元素 my_set {1, 2, 3} my_set.add([4, 5]) # add() 不能接受列表错误原因add() 只能接受单个元素不能接受可迭代对象。 纠正方法 使用 update() 添加多个元素。 # 使用 update() 添加多个元素 my_set {1, 2, 3} my_set.update([4, 5]) print(my_set) # 输出: {1, 2, 3, 4, 5}8. 忽略集合运算的顺序 集合运算是无序的但差集运算-的顺序会影响结果。 错误代码 # 忽略差集运算的顺序 set1 {1, 2, 3} set2 {3, 4, 5} result set2 - set1 # 结果是 set2 中有但 set1 中没有的元素 print(result) # 输出: {4, 5}错误原因差集运算的顺序会影响结果。 纠正方法 明确差集运算的顺序。 # 明确差集运算的顺序 set1 {1, 2, 3} set2 {3, 4, 5} result set1 - set2 # 结果是 set1 中有但 set2 中没有的元素 print(result) # 输出: {1, 2}小结 在使用 Python 集合时常见的错误包括 尝试将可变对象放入集合。混淆集合和字典的创建。尝试修改集合中的元素。使用 remove() 删除不存在的元素。混淆集合和列表的操作。忽略集合的不可重复性。混淆 update() 和 add()。忽略集合运算的顺序。 通过理解这些错误的原因并掌握正确的使用方法可以更高效地使用集合。 四、水平考试 本试卷共计 30 道题。其中选择题 15 题、填空题 10 题和编程题 5 题。满分为 100 分每道题后附有正确答案。 一、选择题每题2分共30分 集合中的元素是 。 A. 有序的B. 无序的C. 可变的D. 可重复的 答案B 以下哪个操作可以创建一个空集合 A. {}B. set()C. []D. () 答案B 集合中的元素必须是 。 A. 可变的B. 不可变的C. 可哈希的D. 可排序的 答案B 和 C 以下哪个方法可以用于向集合中添加元素 A. append()B. add()C. insert()D. extend() 答案B 以下哪个方法可以安全地移除集合中的元素即使元素不存在也不会报错 A. remove()B. discard()C. pop()D. clear() 答案B 以下哪个操作可以计算两个集合的并集 A. B. |C. -D. ^ 答案B 以下哪个操作可以计算两个集合的交集 A. B. |C. -D. ^ 答案A 以下哪个操作可以计算两个集合的差集 A. B. |C. -D. ^ 答案C 以下哪个操作可以计算两个集合的对称差集 A. B. |C. -D. ^ 答案D 以下哪个方法可以清空集合中的所有元素 A. remove()B. discard()C. pop()D. clear() 答案D 以下哪个方法可以随机移除并返回集合中的一个元素 A. remove()B. discard()C. pop()D. clear() 答案C 以下哪个方法可以判断一个集合是否是另一个集合的子集 A. issubset()B. issuperset()C. isdisjoint()D. union() 答案A 以下哪个方法可以判断两个集合是否没有交集 A. issubset()B. issuperset()C. isdisjoint()D. union() 答案C 以下哪个操作可以将多个元素添加到集合中 A. add()B. update()C. insert()D. extend() 答案B 以下哪个代码会报错 A. my_set {1, 2, 3}B. my_set set([1, 2, 3])C. my_set {[1, 2, 3]}D. my_set set((1, 2, 3)) 答案C 二、填空题每题3分共30分 集合中的元素是________的。填“唯一”或“可重复” 答案唯一 使用________方法可以向集合中添加单个元素。 答案add() 使用________方法可以安全地移除集合中的元素即使元素不存在也不会报错。 答案discard() 集合的差集操作符是________。 答案- 集合的对称差集操作符是________。 答案^ 使用________方法可以清空集合中的所有元素。 答案clear() 使用________方法可以判断一个集合是否是另一个集合的子集。 答案issubset() 使用________方法可以判断两个集合是否没有交集。 答案isdisjoint() 集合的并集操作符是________。 答案| 集合的交集操作符是________。 答案 三、编程题共40分 1. 去重5分 编写一个函数 remove_duplicates(lst)接受一个列表作为参数返回一个去重后的列表。 答案 def remove_duplicates(lst):return list(set(lst))# 测试 print(remove_duplicates([1, 2, 2, 3, 4, 4, 5])) # 输出: [1, 2, 3, 4, 5]2. 集合运算10分 编写一个函数 set_operations(set1, set2)接受两个集合作为参数返回它们的并集、交集和差集。 答案 def set_operations(set1, set2):union set1 | set2intersection set1 set2difference set1 - set2return union, intersection, difference# 测试 set1 {1, 2, 3} set2 {3, 4, 5} print(set_operations(set1, set2)) # 输出: ({1, 2, 3, 4, 5}, {3}, {1, 2})3. 对称差集10分 编写一个函数 symmetric_difference(set1, set2)接受两个集合作为参数返回它们的对称差集。 答案 def symmetric_difference(set1, set2):return set1 ^ set2# 测试 set1 {1, 2, 3} set2 {3, 4, 5} print(symmetric_difference(set1, set2)) # 输出: {1, 2, 4, 5}4. 子集检测10分 编写一个函数 is_subset(set1, set2)接受两个集合作为参数判断 set1 是否是 set2 的子集。 答案 def is_subset(set1, set2):return set1.issubset(set2)# 测试 set1 {1, 2} set2 {1, 2, 3, 4} print(is_subset(set1, set2)) # 输出: True5. 集合操作综合15分 编写一个函数 set_manipulation(lst)接受一个列表作为参数完成以下操作 将列表转换为集合并去重。添加元素 10 到集合中。移除元素 2如果存在。返回最终的集合。 答案 def set_manipulation(lst):my_set set(lst)my_set.add(10)my_set.discard(2)return my_set# 测试 print(set_manipulation([1, 2, 2, 3, 4, 4, 5])) # 输出: {1, 3, 4, 5, 10}总分100分 通过这套试卷可以全面测试对 Python 集合的理解和掌握程度。 五、实战案例 以下是 3 个应用“Python 集合”知识的综合应用项目这些项目具有新颖性、前瞻性和实用性每个项目都包含完整的代码、解释说明、测试案例和执行结果。 基因序列比对文章推荐系统运行日志分析 项目 1基因序列比对集合运算与去重 项目描述 在生物信息学中比对两个基因序列的相似性。使用集合的交集和并集计算相似度。 代码实现 # 基因序列简化为字符串集合 sequence1 {A, T, C, A, A, A} sequence2 {A, C, G, G, T, T}# 计算相似度 def sequence_similarity(seq1, seq2):intersection seq1 seq2 # 交集union seq1 | seq2 # 并集similarity len(intersection) / len(union)return similarity# 测试 similarity sequence_similarity(sequence1, sequence2) print(f基因序列相似度{similarity:.2f})测试案例 基因序列 1: {A, T, C, A, A, A}基因序列 2: {A, C, G, G, T, T} 执行结果 基因序列相似度0.75项目 2文章推荐系统去重与交集应用 项目描述 设计一个简单的推荐系统基于用户的历史行为和兴趣标签推荐新的内容。使用集合的交集运算找到用户可能感兴趣的内容。 代码实现 # 用户兴趣标签和历史行为 user_interests {python, AI, machine learning, data science} content_tags {article1: {python, data science},article2: {AI, deep learning},article3: {machine learning, statistics},article4: {python, web development}, }# 推荐函数 def recommend_content(user_interests, content_tags):recommendations {}for content, tags in content_tags.items():common_tags user_interests tags # 计算交集if common_tags:recommendations[content] common_tagsreturn recommendations# 测试 recommendations recommend_content(user_interests, content_tags) print(推荐内容及共同兴趣标签) for content, tags in recommendations.items():print(f{content}: {tags})测试案例 用户兴趣标签{python, AI, machine learning, data science}内容标签 article1: {python, data science}article2: {AI, deep learning}article3: {machine learning, statistics}article4: {python, web development} 执行结果 推荐内容及共同兴趣标签 article1: {python, data science} article2: {AI} article3: {machine learning} article4: {python}项目 3运行日志分析去重与统计 项目描述 分析服务器日志统计独立 IP 地址的数量并找出访问量最高的 IP 地址。 代码实现 # 模拟日志数据 logs [192.168.1.1 - GET /index.html,192.168.1.2 - GET /about.html,192.168.1.1 - POST /login,192.168.1.3 - GET /index.html,192.168.1.2 - GET /contact.html, ]# 统计独立 IP 地址 unique_ips set(log.split()[0] for log in logs) print(f独立 IP 地址数量{len(unique_ips)})# 统计访问量最高的 IP 地址 from collections import Counter ip_counter Counter(log.split()[0] for log in logs) most_common_ip ip_counter.most_common(1)[0] print(f访问量最高的 IP 地址{most_common_ip[0]}访问次数{most_common_ip[1]})测试案例 日志数据192.168.1.1 - GET /index.html 192.168.1.2 - GET /about.html 192.168.1.1 - POST /login 192.168.1.3 - GET /index.html 192.168.1.2 - GET /contact.html执行结果 独立 IP 地址数量3 访问量最高的 IP 地址192.168.1.1访问次数2小结 这些项目展示了 Python 集合在实际问题中的广泛应用包括基因分析对比、文章推荐系统、运行日志分析等方面。通过这些项目可以深入理解集合的强大功能和灵活性。
http://www.dnsts.com.cn/news/157813.html

相关文章:

  • 杭州 建设网站网站建设168
  • 男男互做网站wordpress英文显示改中文
  • 镇江网站设计公司报价群晖ds218 做网站
  • 乌审旗建设局网站最新传奇手游2022首发排行
  • 东莞专业网站建设怎么做图片网站源码
  • 公司网站需求分析ui设计培训学校哪里好
  • 长沙企业建站做示意图的网站
  • 大港建站公司wordpress如何采集电影
  • 网站建设运营公司企业特色长沙品牌网站设计
  • 安安网站建设度假村网站建设
  • 青海专业网站建设推广平台建设网站空间就是服务器吗
  • 网站引流是什么意思网站建设工程师的职位要求
  • 长网页网站免费网络节点
  • 网站建设套餐报价百度引流推广费用多少
  • 燕郊做网站公司王烨琳
  • 湖南网站建设有限公司通付盾 建设网站公司
  • 手机怎么做网站教程本地做网站顺序
  • 流程做网站网站开发设计总结及心得体会
  • 手机网站html源码下载山东有实力的网站开发多少钱
  • 高清网站推广免费下载WordPress做漫画网站
  • 怎么建设自己的一个服务器网站出售源码的网站
  • seo网站的优化流程做网站怎么认证微博
  • 庆阳网站设计十堰网站优化价格
  • 合肥做网站排名工作是套模板做网站
  • 绍兴网站关键词推广在线seo外链工具
  • 南阳手机网站推广温州平台公司
  • 设计网站架构佛山网站制作
  • 旅游开发公司网站建设方案书简述企业网站建设实施的步骤
  • ssc网站建设现在做个网站多少钱
  • wordpress+插件+h5东莞seo优化排名推广