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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

704閲覧

指定した数字がタプルの要素のどちらかに入っていればその数字以外をセットに追加していく

Salasse

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/04 03:16

編集2020/08/04 03:43

Python

1def xs(a, b): 2 zs = [] 3 for i in a: 4 if b in i: 5 zs.append(i) 6 return zs 7a = xs([(1, 3), (1, 5), (1, 6), (5,9)], 1) 8print (a) 9コード 10```### 前提・実現したいこと 11 12例えばxs([(1,3), (1,5), (1,6),(5.9)], 1)という値があるとき戻り値を 13{3, 5, 6}としたいです。 14 15これは学校の課題です。どうしても上のようにできなく色々調べながらやっていたところこのサイトを見つけたので思い切って質問してみました。 16まだ習い始めたばかりですごいレベルの低い質問かもしれませんが回答していただけると嬉しいです。 17 18課題をそのまま出すのはどうかと思ったので関数のところを少し変えています。 19 20### 発生している問題・エラーメッセージ 21

エラーメッセージ

### 該当のソースコード ```ここに言語名を入力 ソースコード

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

meg_

2020/08/04 03:35

コードは「コードの挿入」で記入してください。
Salasse

2020/08/04 03:44

すいませんでした。 修正しました。
meg_

2020/08/04 03:49

課題とのことですが回答に制約等はありますか? どんな方法でもOKなんですか?
Salasse

2020/08/04 03:58

制約は始まりが def xs(a, b): から始まるのみです。 よろしくお願いします。
guest

回答2

0

ベストアンサー

えーと、戻り値はセットですね。{3, 5, 6}と書いてあるし。
それから、「タプルの要素のどちらかに入っていれば」とあるので、タプルの先頭とだけ比べてはいけませんよね。

それらを踏まえると、質問者のコードを活かすのであれば、こんなんですかね。

Python

1def xs(a, b): 2 zs = set() 3 for i in a: 4 if b in i: 5 zs.add(i[1 if i[0] == b else 0]) 6 return zs

自分で書くなら、こうかな。

Python

1def hoge(a, b): 2 return {i[1 if i[0] == b else 0] for i in a if b in i}

投稿2020/08/04 04:12

Daregada

総合スコア11990

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

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

Salasse

2020/08/04 04:20

回答ありがとうございます!! まとまったコードも一緒に送っていただきとても勉強になりました。
guest

0

宿題の丸投げはよろしくありませんが、ご自身なりに取り組まれているようですのでご協力を

各配列(1, 3)等の0個目がbかどうか、bであれば1個目の3をzsに格納するので

Python

1def xs(a, b): 2 zs = [] 3 for i in a: 4 if b == i[0]: 5 zs.append(i[1]) 6 return zs 7 8a = xs([(1, 3), (1, 5), (1, 6), (5,9)], 1) 9print (a)

な感じになるかと思います。

投稿2020/08/04 03:51

aokikenichi

総合スコア2218

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

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

Salasse

2020/08/04 04:16

回答ありがとうございます!! しっかり参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問