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

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

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

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

Python

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

Q&A

2回答

384閲覧

Python タプル内の要素の操作

pussy_pussy

総合スコア22

Python 3.x

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

Python

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

1グッド

0クリップ

投稿2020/10/06 09:38

例えば、

a1=((A,1),(B,2)) a2=((A,4),(B,3))

という2つのタプルがあって、A,Bそれぞれの組になっている数の増加分を取り出したいとき
(Aだったら4-1で3、Bだったら3-2で1)、タプルのままだと操作ができないのでこのタプルを辞書型に変えて
操作をするしかないのでしょうか?

ForestSeo👍を押しています

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

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

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

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

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

meg_

2020/10/06 10:21

> タプルのままだと操作ができないので どういう意味でしょうか?
toast-uz

2020/10/06 12:35

a1=((A,1),(B,2)) a2=((A,4),(B,3)) だと、質問意図にはならないと思います。AとBが変数だと、AとBでタプルを区別する、ということができなくなりますので。 a1=(('A',1),('B',2)) a2=(('A',4),('B',3)) という形に、AとBを明確に文字列として識別できるようにしたほうが、よいと思います。
guest

回答2

0

タプルから要素を取り出すことはできるので、下記のようなことはできます。

Python

1a3 = (('A', a2[0][1] - a1[0][1]), ('B', a2[1][1] - a1[1][1]))

投稿2020/10/06 09:50

takutakuya

総合スコア979

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

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

0

名前付きタプルとかいろいろ考えましたが、「辞書型に変換して操作する」のが一番簡単で直感的である、と思います。
単純な回答だと参考にならないと思いますので、タプルからの継承を使って引き算を直感的に行う例を作ってみました。

Python

1class tupleEx(tuple): 2 def __sub__(self, other): 3 result = [] 4 for id2, num2 in self: 5 result.append((id2, num2 - dict(other)[id2])) 6 return tuple(result) 7 8a1=tupleEx((('A',1),('B',2))) 9a2=tupleEx((('A',4),('B',3))) 10 11a3 = a2 - a1 12print(a3) 13# (('A', 3), ('B', 1))

なお、質問に書きましたように
a1=(('A',1),('B',2))
a2=(('A',4),('B',3))
を前提にしています。

投稿2020/10/06 13:11

toast-uz

総合スコア3266

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問