浅谈python输出列表元素的所有排列形式

 更新时间:2020年02月26日 16:53:15   作者:sayokooo  
今天小编就为大家分享一篇浅谈python输出列表元素的所有排列形式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

例如:

[‘a', ‘b', ‘c'] 输出 [‘a', ‘b', ‘c'] [‘a', ‘c', ‘b'] [‘b', ‘a', ‘c'] [‘b', ‘c', ‘a'] [‘c', ‘a', ‘b'] [‘c', ‘b', ‘a']

方法一:利用递归的方式实现

def permutation(li):
  len_list = len(li)
  if len_list == 1:
    return li

  result = []
  for i in range(len_list):
    res_list = li[:i] + li[i+1:]
    s = li[i]
    per_result = permutation(res_list)
    if len(per_result) == 1:
      result.append(li[i:i + 1] + per_result)
    else:
      result += [[s] + j for j in per_result]
  return result

方法二:利用python自带的模块

import itertools

def permutation(li):
  print(list(itertools.permutations(li)))

补充拓展:python实现四个数字的全排列

首先我们使用常规做法,循环交换完成。

lst = [1, 3, 5, 8]

for i in range(0, len(lst)):
  lst[i], lst[0] = lst[0], lst[i]
  for j in range(1, len(lst)):
    lst[j], lst[1] = lst[1], lst[j]
    for h in range(2, len(lst)):
      print(lst)
    lst[j], lst[1] = lst[1], lst[j]
  lst[i], lst[0] = lst[0], lst[i]

如果列表较长,元素较多,以上常规方法实现起来就比较吃力了,以下我们采用递归方式实现。

def permutations(position):
  if position == len(lst) - 1:
    print(lst)
  else:
    for index in range(position, len(lst)):
      lst[index], lst[position] = lst[position], lst[index]
      permutations(position+1)
      lst[index], lst[position] = lst[position], lst[index]
permutations(0) 

以上这篇浅谈python输出列表元素的所有排列形式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于Python实现Word转HTML

    基于Python实现Word转HTML

    将Word转换为HTML能将文档内容发布在网页上,这样,用户就可以通过浏览器直接查看或阅读文档而无需安装特定的软件,下面我们就来学习一下Python是如何实现Word转HTML的吧
    2023-12-12
  • python3 http.client 网络请求方式

    python3 http.client 网络请求方式

    这篇文章主要介绍了python3 http.client 网络请求方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • django模型中的字段和model名显示为中文小技巧分享

    django模型中的字段和model名显示为中文小技巧分享

    这里给大家分享2个可以让django模型中的字段和model名显示为中文的小技巧,非常的简单实用,给需要的小伙伴参考下。
    2014-11-11
  • python爬虫入门教程之点点美女图片爬虫代码分享

    python爬虫入门教程之点点美女图片爬虫代码分享

    这篇文章主要介绍了python爬虫入门教程之点点美女图片爬虫代码分享,本文以采集抓取点点网美女图片为例,需要的朋友可以参考下
    2014-09-09
  • 教你怎么用python爬取爱奇艺热门电影

    教你怎么用python爬取爱奇艺热门电影

    突然心血来潮想看看电影,特地整理了这篇文章,文中有非常详细的代码示例,对正在学习python爬虫的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Python爬虫框架Scrapy常用命令总结

    Python爬虫框架Scrapy常用命令总结

    这篇文章主要介绍了Python爬虫框架Scrapy常用命令,结合实例形式总结分析了Scrapy框架中常见的全局命令与项目命令功能、使用方法及操作注意事项,需要的朋友可以参考下
    2018-07-07
  • python算法测试结果自动保存到excel表格的实现步骤

    python算法测试结果自动保存到excel表格的实现步骤

    我们在进行算法评估是通常会针对每个样本的算法处理结果进行统计,例如每个样本正确预测数量、漏检数量和误检数量、精度等,本文小编将给大家介绍python算法测试结果自动保存到excel表格的实现步骤,感兴趣的朋友可以参考下
    2023-12-12
  • 如何利用Python获取鼠标的实时位置

    如何利用Python获取鼠标的实时位置

    这篇文章主要给大家介绍了关于如何利用Python获取鼠标的实时位置的相关资料,主要利用的是pyautogui,一个自动化键鼠操作的Python类库,需要的朋友可以参考下
    2022-01-01
  • python tarfile压缩包操作保姆级教程

    python tarfile压缩包操作保姆级教程

    TarFile类就是tar压缩包,其由member块组成, member块则包括header块和data块. 每个member以TarInfo对象形式描述. 所以TarFile就是TarInfo的序列
    2023-02-02
  • Python定时任务实现方案

    Python定时任务实现方案

    这篇文章主要介绍了Python定时任务实现的方案,定时执行的任务,可以是一段bash命令,也可以是一个脚本文件。通常用于我们需要在特定时刻做事情,下面来看看文章详细内容,需要的朋友可以参考一下
    2021-11-11

最新评论