2024年11月5日 星期二

字串 a 的所有子集

 求取字串 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)

重點

  1. 使用列表解析:直接用列表解析來生成 t,格式化為 0{n}b,確保每個二進位字串的長度一致。
  2. 使用 join 函式組合字串:用 join 函式組合符合條件的字元,讓程式更為簡潔易讀。

輸出結果

此程式會輸出 a 的所有子集,以清單的形式呈現。

沒有留言:

張貼留言