
スミマセン、書いています言語はpythonですが
pythonご存じないかたでも、アルゴリズム?の
問題ですので、教えて頂きたいと思います。
いま、
あ い う A
あ い う B
あ い う C
え お A
え お C
:
:
というデータを
あ い う A・B・C
え お A・C
という具合にまとめたいと思っています。
1行あたりのデータの処理は
data = f.readline()
data_1 = data.rsplit(None,1)
として、右側から空白1つをsplitして
data_1[0] は あ い う
data_1[1] は A
と取り出せるのですけれども、
A・B・Cの作り方で悩んでいます
※
あ い う B
あ い う C
は消して
あ い う A・B・C
として残したいです
No.5ベストアンサー
- 回答日時:
No1の方の考え方通りで、辞書データとして扱えば、シンプルになるかと。
data_list = ['あ い う A', 'あ い う B', 'あ い う C', 'え お A', 'え お C']
result = dict()
for data in data_list:
data_1 = data.rsplit(None,1)
try:
result[f'{data_1[0]}'] = f'{result[data_1[0]]}・{data_1[1]}'
except KeyError:
result[f'{data_1[0]}'] = f'{data_1[1]}'
print(result)
ありがとうございます。
ちょこっと変数名を変えさせて頂きましたが
下記内容で動きましたです
input_file = 'tmp_txt.txt'
f = open(input_file, 'r', encoding='UTF-8')
data_list = f.readlines()
f.close()
result = dict()
for data in data_list:
data_1 = data.rstrip('\r\n')
data_2 = data_1.rsplit(None,1)
try:
result[f'{data_2[0]}'] = f'{result[data_2[0]]}・{data_2[1]}'
except KeyError:
result[f'{data_2[0]}'] = f'{data_2[1]}'
kekka = ''
for t, n in result.items():
kekka += t + ' ' + n + '\r\n'
print (kekka)
No.7
- 回答日時:
列の値がが同じデータは、1つのかたまりになってますか。
(連続した行になってますか。)
例えば、以下のようなケースの場合は、どうなりますか。
あ い う A
え お A
あ い う B
え お C
あ い う C
上記のような場合でも
あ い う A・B・C
え お A・C
のようにまとめたいのでしょうか。
No.6
- 回答日時:
これ、「報告書作成問題」ってやつだよね。
古典的な入力構造と出力構造のミスマッチに関する問題のひとつ。
データ行をクラスタごとにまとめてヘッダとフッタを付けるんだけど、
次のクラスタが来るまで今のクラスタが終わったかどうか判らないから、
フッタ行を作成するときに一度
次クラスタの先頭行はプッシュバックしないといけなくて
行単位のバッファリングが必要になるってやつ。
古きよきワインバーグの本なんかに解説があった。
質問のプログラムの要点はそこ。
それに比べれば、文字列をどうやってアペンドするかなんて
アルゴリズムじゃなく、ライブラリの使用法の話に過ぎない。
No.4
- 回答日時:
データが以下のようになっていた場合は、どのようにまとめるのでしょうか。
あ い う A a
あ い う B b
あ い う C c
え お D d 1
え お E e 2
No.3
- 回答日時:
あ〜、ちなみに、だ。
考え方としては#1氏の言う通りなんだけど、実はこのアルゴリズム。
基本的には「圧縮」アルゴリズムの基礎と言われている「ランレングス圧縮」と考え方は全く同じなんだ。
ランレングス圧縮(連長圧縮):
https://ja.wikipedia.org/wiki/%E9%80%A3%E9%95%B7 …
よって、アルゴリズム的に理解したい、ってのならランレングス圧縮あるいは連長圧縮で検索してみればいい。
また、事実上、Pythonのitertools.groupbyと言う関数も、結果、ランレングス圧縮と同じアルゴリズムを採用している。
itertools.groupby:
https://docs.python.org/ja/3.13/library/itertool …
No.1
- 回答日時:
こんにちは
pythonは存じませんけれど、考え方でも良いのなら・・
連想配列が使えると思いますので、keyを「あ い う」、valueを「A」として格納してゆけばすむと思われます。
value値に配列を使えるのなら、そのままpushして、最後にjoinすればよさそうです。
配列が使えない場合は、最初は「A」を格納。既にkeyが存在する場合には「・B」を追加する・・といった考え方でできるのではないでしょうか?
(最初から一律に「・A」を追加して行って、最後に先頭一文字を削除でも可能かと)
上記の処理を、行数分繰り返せばよさそうに思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP reuterの記事をbeautiful.soup.find_all()で検索する方法 1 2023/11/25 07:40
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- Excel(エクセル) 格納したデータを配列のように扱う方法はありますか? 8 2023/06/05 08:53
- その他(パソコン・スマホ・電化製品) mp4のデータをSDカードに保存したらmp4ファイルの関連付けが 切れてしまいました。 6 2023/11/24 16:40
- 統計学 Pythonのspicy.stats.norm.interval()の引数scaleの使い方 1 2024/07/30 11:08
- その他(プログラミング・Web制作) UDP通信を使うチャットプログラムを改変して小さいサイズの画像も送信できないか(Python) 1 2023/12/09 19:09
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- 英語 included number of patients, characteristics of th 3 2023/09/21 13:37
- その他(スマートフォン・携帯電話・VR) 【至急】 とある匿名アプリで Androidのデータ移行がムズすぎて 1日過ぎてたと言ったら And 3 2024/04/19 01:18
このQ&Aを見た人はこんなQ&Aも見ています
-
Cのプログラムからアクセスできないファイル名の一括変更方法
C言語・C++・C#
-
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
プログラマー達は何故、プログラムを入れるフォルダーに容量制限があるのを知らない?
C言語・C++・C#
-
-
4
AIがプログラムする時代のプログラマー不要論の相違について
その他(プログラミング・Web制作)
-
5
pythonでAmazonのほしいものリストをローカル保存するスクリプト書いたら一部しか保存できぬ!
その他(プログラミング・Web制作)
-
6
C言語のことです。写真(見にくくてすいません)の下のプログラムを実行したいのですが四行目がおかしいと
C言語・C++・C#
-
7
プログラミングのやり方ざっくりでいいから教えて
その他(プログラミング・Web制作)
-
8
IT業で開発をされてる方々に質問なんですが、一日に書かれるコード数ってどれくらいですか? また、最近
その他(プログラミング・Web制作)
-
9
プログラミングに興味があるのですが、作りたいものはありません。 ゲーム機とかパソコンの中身(ソースコ
その他(プログラミング・Web制作)
-
10
C言語 関数、変数の宣言について
C言語・C++・C#
-
11
pythonでhtmlファイルの指定文字列間を取得したいです
その他(プログラミング・Web制作)
-
12
趣味がプログラミングだと言ってもいい?
その他(プログラミング・Web制作)
-
13
プログラミング言語のバージョン確認について。
その他(プログラミング・Web制作)
-
14
パイソンのソースコードをChatGPTで書いてもらうのを独学でやろうと思うとどういう方法がオススメで
その他(プログラミング・Web制作)
-
15
AIのプログラムについて教えてください
その他(プログラミング・Web制作)
-
16
c++の勉強方法を教えてくださいプログラミングをやった事がなく1から勉強を始めようと思います1日1時
C言語・C++・C#
-
17
至急助けてください!!!あと2時間しかないです! ボタンを押したら0ランプが点灯し、コンマ5秒後に1
その他(プログラミング・Web制作)
-
18
アセンブラーの命令についてです。
その他(プログラミング・Web制作)
-
19
フロントエンドエンジニアをしていますが、スキルアップのための転職、異動は3年目では早すぎますか? 今
その他(プログラミング・Web制作)
-
20
秀丸エディターでの置き換え
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
プログラミングを学べる!?進化している子どものおもちゃについて専門家に聞いた!
プログラミングを学べるレゴブロックがあることはご存知だろうか。レゴに限らず最近のおもちゃには、プログラミングの要素がどんどん取り入れられているようだ。「教えて!goo」にも、「プログラミングを学べる子供...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
CSVファイルの複数行削除
-
数学、プログラミング、物理、...
-
パイソンのソースコードをChatG...
-
pip --versionがエラーになる
-
pythonの実行に関する質問
-
OS入ってる機器のソフト・アプ...
-
Python 3.12.2 か一番最新のパ...
-
vba クリップボードクリアにつ...
-
ネットワークフォルダの中身を...
-
uwscでPauseキーが押されたら、...
-
アセンブリ言語について。
-
コトリン言語について。
-
Python... 環境設定 初心者です...
-
VBA 電話番号の正規表現について
-
Webサイト内に埋め込んだmp4動...
-
Pythonについて。
-
iOSゲームアプリが作りたいと思...
-
MOVEコマンドでサブフォルダー...
-
プログラミング言語のバージョ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
CSVファイルの複数行削除
-
OS入ってる機器のソフト・アプ...
-
Python 3.12.2 か一番最新のパ...
-
pythonの実行に関する質問
-
パイソンのソースコードをChatG...
-
画像生成AIのプロンプトの作り...
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
Google ColaboでGUI作成
-
Python... 環境設定 初心者です...
-
HTMLソースが表示のページのも...
-
ネットワークフォルダの中身を...
-
MOVEコマンドでサブフォルダー...
-
google Colabでmatplotlibの描...
-
VBAでパワーシェルを実行したい...
-
Pythonでの文字列からfloatへの...
-
Webサイト内に埋め込んだmp4動...
-
初心者powershellのPS1ファイル...
-
pythonについて(初心者です)
おすすめ情報