python實(shí)現(xiàn)輸出一個序列的所有子序列示例
如下所示:
def sub(arr): finish=[] size = len(arr) end = 1 << size #end=2**size for index in range(end): # shift index array = [] for j in range(size): # 00,01,10,11 is symmetrical if (index >> j) % 2: # this result is 1, so do not have to write == array.append(arr[j]) # print(array) finish.append(array) return finish
移位運(yùn)算符 << 的優(yōu)先級大于賦值 =
用01二進(jìn)制串決定數(shù)組中的每個數(shù)字是否輸出
[]=000;[1]=100;[2]=010;[3]=001;[1,2]=110;[1,2,3]=111…
如何實(shí)現(xiàn)?
第一個循環(huán)實(shí)現(xiàn)的是01串的遍歷,eg.由000到111
第二個循環(huán)實(shí)現(xiàn)的是數(shù)組的遍歷,eg.將000與數(shù)組中的每一位數(shù)字做判斷
在if語句中,用到了向右移位,由于二進(jìn)制串是對稱的,所以我們可以將01串從后向前與數(shù)組中的每一位數(shù)字做判斷。
eg.001與100對稱,110與011對稱…
在001中,最后一位是1,說明數(shù)組中3需要輸出
但是在我們遍歷數(shù)組的時候,先遇到的是1與arr[0],不過由于對稱性,這種情況其實(shí)與在100中,后遇到的是1與arr[2]
以上這篇python實(shí)現(xiàn)輸出一個序列的所有子序列示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解python requests中的post請求的參數(shù)問題
這篇文章主要介紹了詳解python requests中的post請求的參數(shù)問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python目標(biāo)檢測SSD算法預(yù)測部分源碼詳解
這篇文章主要為大家介紹了python目標(biāo)檢測SSD算法預(yù)測部分源碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05pycharm運(yùn)行和調(diào)試不顯示結(jié)果的解決方法
今天小編就為大家分享一篇pycharm運(yùn)行和調(diào)試不顯示結(jié)果的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11基于Python批量鑲嵌拼接遙感影像/柵格數(shù)據(jù)(示例代碼)
這篇文章主要介紹了基于Python批量鑲嵌拼接遙感影像/柵格數(shù)據(jù),使用時直接修改Mosaic_GDAL函數(shù)的入?yún)⒕托辛?選擇數(shù)據(jù)存放的路徑會自動拼接,命名也會自己設(shè)置無需額外修改,需要的朋友可以參考下2023-10-10