|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def liebiao_paixu(yuanshi_liebiao: list) -> list:
"""
:param yuanshi_liebiao: list
:return: xin_liebiao: list
接收一个非嵌套的列表,对其中的元素进行全序排列,即找出所有的排列组合。并保存在新的列表中并返回
"""
# yuanshi_liebiao_changdu 用来保存传入的列表长度
yuanshi_liebiao_changdu = len(yuanshi_liebiao)
# xin_Liebiao 用来保存,排序号的所有数据,并最后返回给调用方
xin_liebiao = []
# 排序过程
for m in range(yuanshi_liebiao_changdu):
for n in range(yuanshi_liebiao_changdu - 1):
yuanshi_liebiao[n], yuanshi_liebiao[n + 1] = yuanshi_liebiao[n + 1], yuanshi_liebiao[n]
# 请问这里为什么不能用append将列表添加进入新的列表??如果使用append那么数据会是未排序状态
# 使用extend虽然最后的结果是排序好的,但是不符合我的需求。需要后续在重新排列一次。
# 经过输出确认,是一个已经排序好的列表,长度也没问题,排序也没问题
# print(yuanshi_liebiao, len(yuanshi_liebiao))
xin_liebiao.extend(yuanshi_liebiao)
# 返回排序好的列表
return xin_liebiao
liebiao = [1,2,3]
xin_liebiao = liebiao_paixu(yuanshi_liebiao=liebiao)
print(xin_liebiao)
# 希望得到的输出是
# xin_liebiao = [
# [1,2,3], [1,3,2], [3,1,2], [3,2,1], [2,3,1], [2,1,3]
# 如果使用append函数得到的输出是,这里格式是我希望得到的,但是却没有经过排序
# xin_liebiao = [
# [1,2,3], [1,2,3], [1,2,3], [1,2,3], [1,2,3], [1,2,3],
# 使用extend得到的输出是 这个输出结果虽然是排序好的,但是需要额外的代码排列成希望的格式
# xin_liebiao = [
# 1,2,3,1,3,2,3,1,2,3,2,1,2,3,1,2,1,3
def liebiao_paixu(yuanshi_liebiao: list) -> list:
"""
:param yuanshi_liebiao: list
:return: xin_liebiao: list
接收一个非嵌套的列表,对其中的元素进行全序排列,即找出所有的排列组合。并保存在新的列表中并返回
"""
# yuanshi_liebiao_changdu 用来保存传入的列表长度
yuanshi_liebiao_changdu = len(yuanshi_liebiao)
# xin_Liebiao 用来保存,排序号的所有数据,并最后返回给调用方
xin_liebiao = []
yuanshi_liebiao.sort()
import itertools
for i in itertools.permutations(yuanshi_liebiao):
xin_liebiao.append(list(i))
# 返回排序好的列表
return xin_liebiao
liebiao = [1,2,3]
xin_liebiao = liebiao_paixu(yuanshi_liebiao=liebiao)
print(xin_liebiao)
# 希望得到的输出是
# xin_liebiao = [
# [1,2,3], [1,3,2], [3,1,2], [3,2,1], [2,3,1], [2,1,3]
# 如果使用append函数得到的输出是,这里格式是我希望得到的,但是却没有经过排序
# xin_liebiao = [
# [1,2,3], [1,2,3], [1,2,3], [1,2,3], [1,2,3], [1,2,3],
# 使用extend得到的输出是 这个输出结果虽然是排序好的,但是需要额外的代码排列成希望的格式
# xin_liebiao = [
# 1,2,3,1,3,2,3,1,2,3,2,1,2,3,1,2,1,3
|
|