中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何輸出列表元素的所有排列形式

發布時間:2021-07-30 14:19:35 來源:億速云 閱讀:289 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關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如何輸出列表元素的所有排列形式”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

余江县| 会宁县| 武宁县| 察哈| 新邵县| 富阳市| 调兵山市| 宣威市| 嘉禾县| 皋兰县| 唐河县| 江城| 喀喇沁旗| 夏津县| 平利县| 四平市| 东山县| 芦溪县| 惠东县| 榆林市| 五家渠市| 汉沽区| 女性| 呼玛县| 鹤岗市| 绥棱县| 长治县| 敦煌市| 湘潭县| 马鞍山市| 和林格尔县| 桐乡市| 彩票| 万载县| 兰溪市| 潼关县| 陕西省| 长兴县| 南木林县| 溧水县| 常德市|