Python中while data_list语句含义及排序代码解析
关于Python中
while data_list:的含义及排序代码逻辑解析 先看你提供的这段代码:
data_list = [24, 55, 78, 64, 25, 12, 22, 11, 1, 2, 44, 3, 122, 23, 34] new_list = [] while data_list: minimum = data_list[0] for x in data_list: if x > minimum: minimum = x new_list.append(minimum) data_list.remove(minimum) print(new_list)
先解答while data_list:的含义
while data_list:完全不等同于while True。在Python里,像列表这种容器类型会自动进行「真值判断」:
- 当列表非空(里面还有元素)时,会被判定为
True,循环会持续执行 - 当列表被清空变成
[](空列表)时,会被判定为False,循环直接终止
再拆解整段代码的逻辑
这段代码是手动实现了降序排序,步骤如下:
- 初始化待排序的
data_list和空列表new_list(用来存放最终排序结果) - 进入
while循环:只要data_list里还有元素,就重复执行以下操作- 先把
data_list的第一个元素赋值给变量minimum——这里变量名起错了,实际这段代码是找最大值,叫maximum更合适 - 遍历
data_list中的每个元素x,如果x比当前的minimum大,就把minimum更新为x——这一步的作用是找出当前data_list里的最大值 - 把找到的最大值添加到
new_list的末尾 - 从
data_list里移除这个最大值,这样下一次循环时,data_list就少了一个已处理的元素
- 先把
- 当
data_list被彻底清空后,循环结束,打印new_list,此时它就是原始列表按从大到小排列的结果
内容的提问来源于stack exchange,提问作者Rajkumar Indira
相关产品推荐
相关产品推荐

