Python——自定义排序 sort() / list.sort()

本文介绍了Python的sort()和list.sort()函数如何自定义排序规则,以满足特定的排序需求,如字符串数组按字典序逆序排列,并处理空字符串和字符串前缀的情况。通过自定义函数,可以实现不同于默认字典序升序的排序逻辑。
摘要由CSDN通过智能技术生成

Python 自带的 sort() 函数默认是从小到大进行排序的,与C++的排序函数类似,也可以通过自定义排序函数来指定排序的规则。下面以牛客的一道例题来讲解:

这道题主要是对字符串数组按照字典序逆序进行排序,其中有两种特殊情况:
(1)空字符串排在最前;
(2)若一个短字符串是另一个长字符串的前缀则短字符串排在前面。
这里如果使用 python 自带的 sort / list.sort(),则是按照字典序升序排序。因此这里需要自定义排序函数,使其满足题目条件。

import functools

def mysort(x, y):
    if y.startswith(x
你可以使用 Python 的 requests 库和 BeautifulSoup 库来批量下载 http://zhushou.360.cn/list/index/ 上的 APK 文件。以下是一个示例代码: ```python import requests from bs4 import BeautifulSoup # 待下载的应用分列表 categories = ['hot', 'new', 'reco', 'sort'] # 遍历应用分列表 for category in categories: # 构造分页面 URL url = f'http://zhushou.360.cn/list/index/cid/{category}/page/1' # 发送 GET 请求并获取响应 response = requests.get(url) # 解析响应内容 soup = BeautifulSoup(response.content, 'html.parser') # 查找所有应用的下载链接 app_links = soup.select('.SeaCon .SeaList li a.btn-install') # 遍历应用下载链接列表 for app_link in app_links: # 获取 APK 下载链接和文件名 download_url = app_link['href'] filename = download_url.split('/')[-1] # 发送 GET 请求并获取响应 response = requests.get(download_url) # 检查响应状态码是否为 200 if response.status_code == 200: # 将响应内容写入文件 with open(filename, 'wb') as f: f.write(response.content) print(f'APK 文件已成功下载到本地:{filename}') else: print(f'下载失败:{download_url}') ``` 在这个示例中,我们首先定义了一个应用分列表,然后遍历该列表并构造分页面的 URL。然后,我们使用 `requests.get()` 方法发送 GET 请求并获取响应内容,将其传递给 BeautifulSoup 对象进行解析。我们使用 CSS 选择器 `.SeaCon .SeaList li a.btn-install` 查找所有应用的下载链接,然后遍历下载链接列表,从链接中获取 APK 文件的下载链接和文件名,并使用 `requests.get()` 方法发送 GET 请求并将响应内容写入文件。最后,我们输出成功下载的文件名。如果下载失败,则输出错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值