質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

168閲覧

python:yield文での(,x)はどういう処理を行っていますか?

goyamaro

総合スコア14

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1グッド

0クリップ

投稿2019/04/03 14:29

###はじめに
現在、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,)
ikedas👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

要素数1のタプルです。

Python

1>>> r = (1, 2, 3) 2>>> 3>>> r + (9,) 4(1, 2, 3, 9) 5>>> 6>>> r + (9) 7Traceback (most recent call last): 8 File "<stdin>", line 1, in <module> 9TypeError: can only concatenate tuple (not "int") to tuple 10>>> r + 9 11Traceback (most recent call last): 12 File "<stdin>", line 1, in <module> 13TypeError: can only concatenate tuple (not "int") to tuple

投稿2019/04/03 14:34

LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goyamaro

2019/04/03 14:40

早速のご回答ありがとうございます。 助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問