最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談python輸出列表元素的所有排列形式

 更新時間:2020年02月26日 16:53:15   作者:sayokooo  
今天小編就為大家分享一篇淺談python輸出列表元素的所有排列形式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

例如:

[‘a(chǎn)', ‘b', ‘c'] 輸出 [‘a(chǎn)', ‘b', ‘c'] [‘a(chǎn)', ‘c', ‘b'] [‘b', ‘a(chǎn)', ‘c'] [‘b', ‘c', ‘a(chǎn)'] [‘c', ‘a(chǎn)', ‘b'] [‘c', ‘b', ‘a(chǎn)']

方法一:利用遞歸的方式實現(xiàn)

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實現(xiàn)四個數(shù)字的全排列

首先我們使用常規(guī)做法,循環(huán)交換完成。

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]

如果列表較長,元素較多,以上常規(guī)方法實現(xiàn)起來就比較吃力了,以下我們采用遞歸方式實現(xiàn)。

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輸出列表元素的所有排列形式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python logging設(shè)置和logger解析

    Python logging設(shè)置和logger解析

    這篇文章主要介紹了Python logging設(shè)置和logger解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python執(zhí)行外部命令subprocess的使用詳解

    Python執(zhí)行外部命令subprocess的使用詳解

    subeprocess模塊是python自帶的模塊,無需安裝,主要用來取代一些就的模塊或方法,本文通過實例代碼給大家分享Python執(zhí)行外部命令subprocess及使用方法,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 人臉識別實戰(zhàn)之Opencv+SVM實現(xiàn)人臉識別

    人臉識別實戰(zhàn)之Opencv+SVM實現(xiàn)人臉識別

    這篇文章主要介紹了通過Opencv+SVM實現(xiàn)人臉識別功能,文中的示例代碼介紹詳細,對于我們學習人臉識別和OpenCV都有一定的幫助,感興趣的小伙伴可以學習一下
    2021-12-12
  • python pandas 對series和dataframe的重置索引reindex方法

    python pandas 對series和dataframe的重置索引reindex方法

    今天小編就為大家分享一篇python pandas 對series和dataframe的重置索引reindex方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python 中Arduino串口傳輸數(shù)據(jù)到電腦并保存至excel表格

    python 中Arduino串口傳輸數(shù)據(jù)到電腦并保存至excel表格

    這篇文章主要介紹了python Arduino串口傳輸數(shù)據(jù)到電腦并保存至excel表格,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Python實現(xiàn)自動收集參數(shù)的技巧分享

    Python實現(xiàn)自動收集參數(shù)的技巧分享

    在Python中,充分利用函數(shù)參數(shù)的自動收集和靈活處理,是寫出高效且易維護代碼的關(guān)鍵之一,本文將深入研究Python函數(shù)參數(shù)的收集方式,感興趣的小伙伴可以了解下
    2023-12-12
  • 你可能不知道的Python 技巧小結(jié)

    你可能不知道的Python 技巧小結(jié)

    有許許多多文章寫了 Python 中的許多很酷的特性,例如變量解包、偏函數(shù)、枚舉可迭代對象,但是關(guān)于 Python 還有很多要討論的話題,因此在本文中,我將嘗試展示一些我知道的和在使用的,但很少在其它文章提到過的特性。那就開始吧
    2020-01-01
  • python計算書頁碼的統(tǒng)計數(shù)字問題實例

    python計算書頁碼的統(tǒng)計數(shù)字問題實例

    這篇文章主要介紹了python計算書頁碼的統(tǒng)計數(shù)字問題實例,對比2個實例講述了數(shù)字統(tǒng)計的技巧,非常實用,需要的朋友可以參考下
    2014-09-09
  • Python中conda虛擬環(huán)境創(chuàng)建及使用小結(jié)

    Python中conda虛擬環(huán)境創(chuàng)建及使用小結(jié)

    本文主要介紹了Python中conda虛擬環(huán)境創(chuàng)建及使用小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-03-03
  • Pandas時間序列重采樣(resample)方法中closed、label的作用詳解

    Pandas時間序列重采樣(resample)方法中closed、label的作用詳解

    這篇文章主要介紹了Pandas時間序列重采樣(resample)方法中closed、label的作用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12

最新評論

出国| 滨海县| 东辽县| 临沭县| 桂阳县| 安庆市| 永春县| 永春县| 两当县| 灯塔市| 惠来县| 广灵县| 余庆县| 永修县| 宝鸡市| 芜湖市| 拜城县| 金乡县| 江都市| 罗平县| 根河市| 郧西县| 仁化县| 安岳县| 石棉县| 贺兰县| 新巴尔虎右旗| 弥勒县| 定陶县| 西林县| 淮阳县| 扎兰屯市| 鹤壁市| 山阴县| 资阳市| 正安县| 沂源县| 淮南市| 通海县| 库伦旗| 濮阳市|