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

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

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

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

Q&A

解決済

1回答

234閲覧

Pythonで1つの共通ワードを基に複数リストの値を出す方法

Mako11

総合スコア5

Python

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

0グッド

0クリップ

投稿2022/05/27 06:21

編集2022/05/29 02:11

こんにちは。
問題のような質問になってしまい、申し訳ないですが、
例えばですが、下記に A/B/C と3つのリストがあり、

A ["りんご","なし","ぶどう","みかん"] = ["1","3","5","7"]
B ["りんご","もも","バナナ","オレンジ"] = ["2","4","6","8"]
C ["りんご","いちご","柿","パイナップル"] = ["4","6","8","10"]

ここから"りんご"をA/B/Cの共通ワードにして、最終的に

["りんご","なし","ぶどう","みかん"] = ["4","12","20","28"]
["りんご","もも","バナナ","オレンジ"] = ["4","8","12","16"]
["りんご","いちご","柿","パイナップル"] = ["4","6","8","10"]

と言った、Cを基準にした場合、りんごの"4"に合わせてほかの果物もAだったら4倍、
Bだったら2倍にする方法をご教授いただけると幸いです。

よろしくお願いいたします。

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

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

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

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

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

sky6720

2022/05/27 07:23 編集

リストCが基準なのは確定なんですかね? あとかならず倍率が整数倍になるとして、下記のような感じですか? ```python listA = ["りんご","なし","ぶどう","みかん"] listB = ["りんご","もも","バナナ","オレンジ"] listC = ["りんご","いちご","柿","パイナップル"] df1 = ["1","3","5","7"] df2 = ["2","4","6","8"] df3 = ["4","6","8","10"] KeyWord = 'りんご' #それぞれのリストの中でのキーワードのインデックスを求める indexA = listA.index(KeyWord) indexB = listB.index(KeyWord) indexC = listC.index(KeyWord) #listCを基準に何倍にすればよいかを求める(ここでは整数倍としています) CperA = int(df3[indexC]) // int(df1[indexA]) CperB = int(df3[indexC]) // int(df2[indexB]) #リスト内包表記で各要素に倍率をかけて新しいリストにする newA = [int(n) * CperA for n in df1] newB = [int(n) * CperB for n in df2] print(f'{listA} = {newA}') print(f'{listB} = {newB}') print(f'{listC} = {df3}') ```
Mako11

2022/05/29 02:28

ありがとうございます! リストCの基準で問題ありませんでしたが、質問しようとしたところ別の方の回答で解決ができました!!
guest

回答1

0

ベストアンサー

python

1listA = ["りんご","なし","ぶどう","みかん"] 2listB = ["りんご","もも","バナナ","オレンジ"] 3listC = ["りんご","いちご","柿","パイナップル"] 4 5df1 = ["1","3","5","7"] 6df2 = ["2","4","6","8"] 7df3 = ["4","6","8","10"] 8 9df1 = [*map(float, df1)] 10df2 = [*map(float, df2)] 11df3 = [*map(float, df3)] 12 13keyword = "りんご" 14base = df3[listC.index(keyword)] 15ratio = [base/v[l.index(keyword)] for l, v in zip((listA, listB, listC), (df1, df2, df3))] 16df1, df2, df3 = [[str(ratio[i]*v) for v in l] for i, l in enumerate((df1, df2, df3))] 17 18print(f'{df1 = }') 19print(f'{df2 = }') 20print(f'{df3 = }') 21 22# 23df1 = ['4.0', '12.0', '20.0', '28.0'] 24df2 = ['4.0', '8.0', '12.0', '16.0'] 25df3 = ['4.0', '6.0', '8.0', '10.0']

投稿2022/05/27 07:44

編集2022/05/27 07:47
melian

総合スコア19749

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

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

Mako11

2022/05/29 02:10

ありがとうございます!! 凄く助かりました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問