列表快排

一、列表实现快速排序

def qsort(lst):
if len(lst) <= 1: return lst
return qsort([i for i in lst[1:] if i < lst[0]]) + lst[0:1] + qsort([i for i in lst[1:] if i >= lst[0]])
lst = [1,3,2,6,5,4]
print(qsort(lst))

实现原理递归(将比列表的第一个数小的放在前面,比列表第一个打的放在后面,第一个放中间)

二、将一个嵌套列表变为一个列表

lst = [1,2,[3,4],5,[6,7],[8,[9,10]],[11]]
lst2 = [1]
lst3 = []

lst1 = []
def func(lst):
	if len(lst) < 1:
		return lst
	for l in lst:
		if type(l) == list:
			func(l)
		else:
			lst1.append(l)
	return lst1

print(func(lst3))

实现原理递归(判断是否为列表如果是继续引用函数,如果不是则直接将值加到列表中)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值