求取字串 a
的所有子集:
# 求子集
a = 'abcd'
n = len(a)
# 取得所有二進位,並格式化為固定寬度的二進位字串
t = [f'{i:0{n}b}' for i in range(2**n)]
# 將符合條件的字元組成子集
ss = []
for j in t:
s = ''.join([a[k] for k in range(n) if j[k] == '1'])
ss.append(s)
print(ss)
重點
- 使用列表解析:直接用列表解析來生成
t
,格式化為0{n}b
,確保每個二進位字串的長度一致。 - 使用
join
函式組合字串:用join
函式組合符合條件的字元,讓程式更為簡潔易讀。
輸出結果
此程式會輸出 a
的所有子集,以清單的形式呈現。
沒有留言:
張貼留言