1. keys

# 定义一个list,根据第 2 位的大小排序
my_random = [(1, 6), (2, 4), (3, 1), (3, 3)]


def take_second(element):
	return element[1]


sorted_list = sorted(my_random, key=take_second)
print(f"original_list = {my_random}")
print(f"sorted_list = {sorted_list}")
original_list = [(1, 6), (2, 4), (3, 1), (3, 3)]
sorted_list = [(3, 1), (3, 3), (2, 4), (1, 6)]

2. 列表推导

在列表推导中的顺序不同导致的结果也不同;
列表推导的作用只有一个:生成列表

colors = ["while", "blues"]
sizes = ['M', 'L', 'S']

# 先以color为主,后以size为主
my_list_1 = [(color, size) for color in colors
			 for size in sizes]

# 先以size为主,后以color为主
my_list_2 = [(color, size) for size in sizes
			 for color in colors]

print(f"my_list={my_list_1}")
# output for my_list_1
# my_list=[('while', 'M'), ('while', 'L'), ('while', 'S'), ('blues', 'M'), ('blues', 'L'), ('blues', 'S')]

print(f"my_list_2={my_list_2}")
# output for my_list_2
# my_list_2=[('while', 'M'), ('blues', 'M'), ('while', 'L'), ('blues', 'L'), ('while', 'S'), ('blues', 'S')]

3. list排序

  • sort(list):不改变原始的列表的顺序,新建一个排序好的列表
  • list.sort():将原始的列表的顺序进行改变替换
# 定义列表fruits
fruits = ['grape','respberry','apple','banana']
print(f"fruits_before={fruits}")
# fruits_before=['grape', 'respberry', 'apple', 'banana']

# reverse=True表示列表里面的数据按照降序进行排序
print(f"sorted(fruits)_True={sorted(fruits,reverse=True)}")
# sorted(fruits)_True=['respberry', 'grape', 'banana', 'apple']


# reverse=False表示列表里面的数据按照升序进行排序
print(f"sorted(fruits)_False={sorted(fruits,reverse=False)}")
# sorted(fruits)_False=['apple', 'banana', 'grape', 'respberry']


# reverse=False表示列表里面的数据按照长度len升序进行排序,
print(f"sorted(fruits,key=len,reverse=True)={sorted(fruits,key=len,reverse=True)}")
# sorted(fruits,key=len,reverse=True)=['respberry', 'banana', 'grape', 'apple']

# 排序是重新新建一个列表,通过列表来展现排序的结果,跟原列表无关
print(f"fruits_after={fruits}")
# fruits_after=['grape', 'respberry', 'apple', 'banana']

# 对fruits进行排序,原列表fruits被更改
print(f"fruits.sort()={fruits.sort()}")
# fruits.sort()=None

print(f"fruits_sort={fruits}")
# fruits_sort=['apple', 'banana', 'grape', 'respberry']
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐