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

网站建设微信商城多少钱网页开发用什么软件

网站建设微信商城多少钱,网页开发用什么软件,网页制作工具按其制作方式有,wordpress连接数据库出错Python 中 sort() 和 sorted() 的用法与区别 1. sort() 方法: sort() 是 Python 列表类型 (list) 的一个方法,它用于就地(原地)排序列表,修改原始列表。排序时可以通过 key 参数指定排序依据,还可以通过 …

Python 中 sort()sorted() 的用法与区别

1. sort() 方法:

sort() 是 Python 列表类型 (list) 的一个方法,它用于就地(原地)排序列表,修改原始列表。排序时可以通过 key 参数指定排序依据,还可以通过 reverse 参数来指定是否按降序排序。

语法:
list.sort(key=None, reverse=False)
  • key:指定一个函数,用来从列表中的每个元素中提取出用于排序的值。
  • reverse:布尔值,True 时表示降序排序,False 时表示升序排序(默认)。
示例 1:基本用法
numbers = [5, 2, 9, 1, 5, 6]
numbers.sort()
print(numbers)  # 输出:[1, 2, 5, 5, 6, 9]
示例 2:按降序排序
numbers = [5, 2, 9, 1, 5, 6]
numbers.sort(reverse=True)
print(numbers)  # 输出:[9, 6, 5, 5, 2, 1]
示例 3:使用 key 参数按某个规则排序
items = [(3, 'apple'), (1, 'banana'), (2, 'cherry')]
items.sort(key=lambda x: x[0])  # 按照元组的第一个元素(数字)排序
print(items)  # 输出:[(1, 'banana'), (2, 'cherry'), (3, 'apple')]
注意:
  • sort()原地排序,会改变原始列表。
  • 如果你希望保留原始列表并得到一个新的排序结果,使用 sorted()

2. sorted() 函数:

sorted() 是一个内置函数,它可以用于任何可迭代对象(如列表、元组、字典等)。它会返回一个新的已排序的列表,并不会改变原始数据。

语法:
sorted(iterable, key=None, reverse=False)
  • iterable:待排序的可迭代对象。
  • key:同 sort(),指定排序依据。
  • reverse:同 sort(),是否降序排列。
示例 1:基本用法
numbers = [5, 2, 9, 1, 5, 6]
new_numbers = sorted(numbers)
print(new_numbers)  # 输出:[1, 2, 5, 5, 6, 9]
print(numbers)  # 原始列表未变:[5, 2, 9, 1, 5, 6]
示例 2:使用 key 参数按某个规则排序
items = [(3, 'apple'), (1, 'banana'), (2, 'cherry')]
new_items = sorted(items, key=lambda x: x[0])  # 按照元组的第一个元素排序
print(new_items)  # 输出:[(1, 'banana'), (2, 'cherry'), (3, 'apple')]
示例 3:按降序排序
numbers = [5, 2, 9, 1, 5, 6]
new_numbers = sorted(numbers, reverse=True)
print(new_numbers)  # 输出:[9, 6, 5, 5, 2, 1]
注意:
  • sorted() 会返回一个新的列表,原始数据不受影响。
  • 如果你不需要改变原始数据且想要一个新的排序列表,使用 sorted()

3. sort()sorted() 的区别:

特性sort()sorted()
修改原数据是(原地排序)否(返回新列表,不修改原数据)
返回值None(返回值是 None,修改原列表)新排序的列表
适用范围仅适用于列表 (list)适用于任何可迭代对象(如列表、元组、字典等)
性能因为是原地排序,内存效率更高返回一个新的列表,会占用额外内存
例子:原地排序与返回新列表的对比
# 使用 sort()
numbers = [4, 2, 7, 1]
numbers.sort()  # 原地排序
print(numbers)  # 输出:[1, 2, 4, 7]# 使用 sorted()
numbers = [4, 2, 7, 1]
sorted_numbers = sorted(numbers)  # 返回新的列表
print(numbers)  # 输出:[4, 2, 7, 1] (原列表未改变)
print(sorted_numbers)  # 输出:[1, 2, 4, 7]

4. 如何选择使用 sort()sorted()

  • 使用 sort():当你只需要修改原始列表并节省内存时。
  • 使用 sorted():当你不想修改原始列表时,或者想对其他类型的可迭代对象(如元组、字典等)进行排序。

5. 解题思路:每一个查询的最大美丽值

我们来看一下题目:

给定一个二维数组 items,每个元素是 [price, beauty],以及一个查询数组 queries,对于每个查询值,要求返回小于等于该查询价格的所有物品中的最大美丽值。

我们可以通过以下步骤来优化解决这个问题:

1. 排序物品列表

首先,我们可以按照物品的价格排序 items,这样方便在后续的查询过程中增量地处理物品,避免重复遍历。

2. 按查询排序

queries 按升序排序,这样可以确保我们从小到大处理每个查询。

3. 遍历物品并增量更新最大美丽值

对于每个查询,使用两个指针:一个指向物品列表,一个指向查询数组。每次处理一个查询时,我们通过指针 j 增量遍历物品列表,更新当前可选物品中的最大美丽值。

代码实现:
class Solution:def maximumBeauty(self, items: List[List[int]], queries: List[int]) -> List[int]:# 排序物品列表,按照价格排序items.sort(key=lambda item: item[0])# 按照查询值升序排序,并记录原始索引idx = sorted(range(len(queries)), key=lambda i: queries[i])# 初始化答案列表,max_beauty表示当前最大的美丽值ans = [0] * len(queries)max_beauty = 0j = 0# 遍历查询for i in idx:q = queries[i]# 处理查询小于等于当前查询价格的物品while j < len(items) and items[j][0] <= q:max_beauty = max(max_beauty, items[j][1])j += 1ans[i] = max_beautyreturn ans
示例:
items = [[1, 2], [3, 2], [2, 4], [5, 6], [3, 5]]
queries = [1, 2, 3, 4, 5, 6]
sol = Solution()
print(sol.maximumBeauty(items, queries))  # 输出:[2, 4, 5, 5, 6, 6]

解题步骤:

  1. 物品排序:首先按价格对物品进行排序。
  2. 查询排序:按查询值升序排列,方便按顺序处理每个查询。
  3. 增量处理:遍历每个查询时,使用指针 j 增量遍历物品并更新最大美丽值。

总结:

  • sort()sorted() 都是用来排序的工具,前者是原地排序,后者返回新排序的列表。
  • sort() 适用于需要修改原始数据的情况,而 sorted() 适用于需要保留原数据并得到排序结果的情况。
  • 对于这道题,通过排序物品和查询,并通过增量处理来实现高效的查询答案。
http://www.dtcms.com/wzjs/818506.html

相关文章:

  • 法国企业网站建设上海电子商务网站制作
  • 红包打赏的网站怎么做深圳网站建设收费标准
  • 乐清市做淘宝网站公司宁波网络推广渠道有哪些
  • 互联网网站运营推广fview网站开发
  • 怎么在文档中做网站一点就开软件代理网
  • 好搜360网站wordpress怎么改搜索
  • 网站建设要买哪些软件做网站应该学什么语言
  • 公司网站案例展示百度站长工具官网
  • 安庆网站建设做网站属于无形资产还是费用
  • 潮州市建设工程交易中心网站中文域名注册官网入口
  • pc 移动 网站开发千万别学视觉传达设计
  • 手机网站建设图片网络推广计划书目录
  • 如何创建自己公司网站恒丰建设集团有限公司 网站
  • o2o网站建设新闻如何用云服务器做网站
  • 姑苏网站建设辽源做网站的公司
  • 上海cms建站创意经济型网站建设
  • 网站开发赚钱吗linux html转wordpress
  • 网站建设招标模板网站制作视频教程下载百度云
  • 电脑网站手机版怎么做新媒体营销工具有哪些
  • 模块建站平台发帖百度秒收录网站分享
  • 石家庄网站建设诚荐优度网络网站建设的报告
  • 口碑好门户网站开发市桥网站建设培训
  • 网站后台设置关键字苏州做网站的哪个公司比较好
  • 郑州华恩科技做网站怎么样手机设计软件免费
  • 银行网站 设计方案百业网免费发布信息
  • 建设小型网站价钱排行榜软件
  • 做门户网站难吗新农村建设官方网站
  • 外贸网站建设公司 迅当网泰安房产交易网官网
  • 网站备案指的是什么行业推广做哪个网站好
  • 店铺只做商品展示网站怎么做哈尔滨关键词排名首页