🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

Python

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

Q&A

解決済

1回答

987閲覧

Pythonの複数リストから1つのリスト作成

begginer_pygo

総合スコア16

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

Python

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

0グッド

0クリップ

投稿2021/03/30 11:35

編集2021/03/30 11:58

前提・実現したいこと

多重リストであるリストA、リストBからリストCを作成したいのですが、良いアルゴリズムが思い浮かびません。。。。
よい方法があればお教えください

リストCを作成する条件(考え方)
①リストCの時間の帯は必ずリストBの080000~075959の間
②リストAの時間の帯とリストBの時間の帯を比較して、リストA、Bの各3つ目の要素をリストCの3つ目、4つ目の要素として使う

リストA
[['20210322060000', '20210322120000', 'A']
['20210322123000', '20210323130000', 'B']
['20210323133000', '20210325150000', 'A']
['20210325153000', '20210329180000', 'B']]

リストB
[['20210322080000', '20210323075959', '20210322'],
['20210323080000', '20210324075959', '20210323'],
['20210324080000', '20210325075959', '20210324'],
['20210325080000', '20210326075959', '20210325'],
['20210326080000', '20210327075959', '20210326'],
['20210327080000', '20210328075959', '20210327'],
['20210328080000', '20210329075959', '20210328']]

リストC
[['20210322080000', '20210322120000', '20210322', 'A']
['20210322123000', '20210323075959', '20210322', 'B']
['20210323080000', '20210323130000', '20210323', 'B']
['20210323133000', '20210324075959', '20210323', 'A']
['20210324080000', '20210325075959', '20210324', 'A']
['20210325080000', '20210325150000', '20210325', 'A']
['20210325153000', '20210326075959', '20210325', 'B']
['20210326080000', '20210327075959', '20210326', 'B']
['20210327080000', '20210328075959', '20210327', 'B']
['20210328080000', '20210329075959', '20210328', 'B']]

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

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

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

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

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

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

can110

2021/03/30 11:38

A,BからCを作成するためのルールを示してください。
meg_

2021/03/30 11:43

> リストの各項目の大小比較を行うしかないかなと思っていますが その方法で実現できるのであればそれで良いかと思いますが、何か問題があるのでしょうか?
begginer_pygo

2021/03/30 11:59

meg様 >その方法で実現できるのであればそれで良いかと思いますが、何か問題があるのでしょうか? 大小比較で検討していますが、実現できていない状況です
guest

回答1

0

ベストアンサー

リストの各項目の大小比較を行うしかないでしょう。

書き方は内包表記を使った方が楽ですね。

python

1>>> C = [[max(a[0],b[0]), min(a[1],b[1]), b[2], a[2]] for a in A for b in B if not(a[0]>b[1] or a[1]<b[0])] 2>>> for c in C: 3... print(c) 4... 5['20210322080000', '20210322120000', '20210322', 'A'] 6['20210322123000', '20210323075959', '20210322', 'B'] 7['20210323080000', '20210323130000', '20210323', 'B'] 8['20210323133000', '20210324075959', '20210323', 'A'] 9['20210324080000', '20210325075959', '20210324', 'A'] 10['20210325080000', '20210325150000', '20210325', 'A'] 11['20210325153000', '20210326075959', '20210325', 'B'] 12['20210326080000', '20210327075959', '20210326', 'B'] 13['20210327080000', '20210328075959', '20210327', 'B'] 14['20210328080000', '20210329075959', '20210328', 'B']

投稿2021/03/30 12:15

編集2021/03/30 12:55
ppaul

総合スコア24670

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

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

begginer_pygo

2021/04/02 01:27

こんなにシンプルに書けるとは思いませんでした。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問