You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python技术问题:如何基于两个列表对其中一个列表进行排序?

给Spotify曲目ID&流派列表排序的几种方法

嘿,看你给出的这个ids_and_genres列表,应该是想按某种规则给它排序对吧?咱直接上实用的Python实现方法,分几种常见场景:

1. 按流派名称排序(最常用)

如果你想按流派的字母顺序来排,用Python内置的sorted()函数就行,指定排序依据为每个元组的第二个元素(也就是流派字符串):

# 按流派名称升序排序(A-Z)
sorted_by_genre_asc = sorted(ids_and_genres, key=lambda x: x[1])

# 如果要降序(Z-A),加个reverse=True参数
sorted_by_genre_desc = sorted(ids_and_genres, key=lambda x: x[1], reverse=True)

要是你想直接修改原列表,而不是生成新列表,就用列表的sort()方法(原地排序,没有返回值):

# 原地按流派升序排序
ids_and_genres.sort(key=lambda x: x[1])

举个例子,排序后你会看到'baile pop'、'bossa nova'这类开头字母靠前的流派排在前面,'sertanejo pop'、'rock gaucho'会靠后。

2. 按Spotify曲目ID排序

如果需要按曲目ID的字符串顺序排序,只需要把key换成取元组的第一个元素就行:

# 按ID升序排序
sorted_by_id = sorted(ids_and_genres, key=lambda x: x[0])

# 原地按ID排序
ids_and_genres.sort(key=lambda x: x[0])

小提示

  • sorted()函数会返回一个全新的排序后的列表,原列表保持不变;list.sort()是直接修改原列表,不会返回新列表哦。
  • 如果流派里有特殊字符(比如你列表里的samba...),Python的字符串排序会自动处理这些字符的顺序,不用额外担心。

内容的提问来源于stack exchange,提问作者8-Bit Borges

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:42:48