###はじめに
現在、pythonを学習しています。
学習をしているなかで、不明な点があるので質問させて頂きます。
初めて質問を投稿する者ですので、レイアウトが見づらかったりするかもしれません。
ご容赦ください。
前提・実現したいこと
文字候補'python'からn文字の文字列を生成する(重複なしの場合)関数
動作例
>>>create_word_list_p(3,"python")#文字列を生成する関数 ['pyt', 'pyh', 'pyo', 'pyn', 'pty', 'pth', 'pto', 'ptn', 'phy', 'pht', 'pho', 'phn', 'poy', 'pot', 'poh', 'pon', 'pny', 'pnt', 'pnh', 'pno', (省略) 'npy', 'npt', 'nph', 'npo', 'nyp', 'nyt', 'nyh', 'nyo', 'ntp', 'nty', 'nth', 'nto', 'nhp', 'nhy', 'nht', 'nho', 'nop', 'noy', 'not', 'noh']
該当のソースコード
python
1def perm(n, m): 2 if m<1: 3 yield() 4 else: 5 for r in perm(n, m-1): 6 for x in range(n): 7 if x not in r: 8 yield r + (x,) 9 10def create_word_list_p(n, s): 11 return [''.join(s[i] for i in t) for t in perm(len(s), n)]
#不明な部分
以下のyieldの式の(x,)の部分がどのような処理を行っているのか分かりません。
yield r + (x,)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/03 14:40