從數字列表中獲取所有可能的組合
任務是獲取列表元素的所有可能組合(2^N) ,無論其長度如何。
暴力破解方法
一種可能的方法是循環遍歷十進制整數1-32768 並使用它們的二進位表示形式作為過濾器來選擇相應的列表元素。但是,此方法的時間複雜度為 O(32768),對於大型清單來說效率較低。
最佳化解決方案
更有效率的解決方案是使用itertools 函式庫。以下程式碼在 Python 中產生列表元素的所有可能組合:
import itertools stuff = [1, 2, 3] combinations = list(itertools.chain(*map(lambda x: itertools.combinations(stuff, x), range(0, len(stuff)+1)))) for subset in combinations: print(subset)
此程式碼產生給定列表的所有子集,包括空集和原始列表本身。它透過建立一個生成器來為每個長度「L」產生所有可能的組合,然後使用 chain() 函數將所有生成器連接到一個可迭代中。
以上是如何在 Python 中高效產生數字列表的所有可能子集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

文章討論了由於語法歧義而導致的Python中元組理解的不可能。建議使用tuple()與發電機表達式使用tuple()有效地創建元組。 (159個字符)

本文解釋了Python中的模塊和包裝,它們的差異和用法。模塊是單個文件,而軟件包是帶有__init__.py文件的目錄,在層次上組織相關模塊。

文章討論了Python中的Docstrings,其用法和收益。主要問題:Docstrings對於代碼文檔和可訪問性的重要性。

本文討論了Python中的“ Pass”語句,該語句是函數和類等代碼結構中用作佔位符的空操作,允許在沒有語法錯誤的情況下實現將來實現。

文章在Python中討論 /和//運營商: / for for True Division,//用於地板部門。主要問題是了解它們的差異和用例。 Character數量:158


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具