
スミマセン、書いています言語は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も見ています
-
ショボ短歌会
ひどい短歌を詠んでください。
-
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
Cのプログラムからアクセスできないファイル名の一括変更方法
C言語・C++・C#
-
C言語のことです。写真(見にくくてすいません)の下のプログラムを実行したいのですが四行目がおかしいと
C言語・C++・C#
-
-
4
アセンブラーの命令についてです。
その他(プログラミング・Web制作)
-
5
IT業で開発をされてる方々に質問なんですが、一日に書かれるコード数ってどれくらいですか? また、最近
その他(プログラミング・Web制作)
-
6
プログラミングに興味があるのですが、作りたいものはありません。 ゲーム機とかパソコンの中身(ソースコ
その他(プログラミング・Web制作)
-
7
プログラマー達は何故、プログラムを入れるフォルダーに容量制限があるのを知らない?
C言語・C++・C#
-
8
pythonでAmazonのほしいものリストをローカル保存するスクリプト書いたら一部しか保存できぬ!
その他(プログラミング・Web制作)
-
9
プログラミングのやり方ざっくりでいいから教えて
その他(プログラミング・Web制作)
-
10
C言語 関数、変数の宣言について
C言語・C++・C#
-
11
AIのプログラムについて教えてください
その他(プログラミング・Web制作)
-
12
共テのプログラミング言語はPython等と違いほとんど日本語ですが、その共テのプログラミング言語を解
その他(プログラミング・Web制作)
-
13
秀丸エディターでの置き換え
その他(プログラミング・Web制作)
-
14
至急助けてください!!!あと2時間しかないです! ボタンを押したら0ランプが点灯し、コンマ5秒後に1
その他(プログラミング・Web制作)
-
15
フロントエンドエンジニアをしていますが、スキルアップのための転職、異動は3年目では早すぎますか? 今
その他(プログラミング・Web制作)
-
16
pythonについて
その他(プログラミング・Web制作)
-
17
これて逆じゃないですか?
C言語・C++・C#
-
18
c++の勉強方法を教えてくださいプログラミングをやった事がなく1から勉強を始めようと思います1日1時
C言語・C++・C#
-
19
アセンブリ言語について。
その他(プログラミング・Web制作)
-
20
文系のSE志望です。プログラミングを今から習得したいのですが、初めて学ぶのにオススメの言語があれば教
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
⚠️至急です!⚠️ Yahoo!知恵袋の...
-
vba クリップボードクリアにつ...
-
COPYコマンドで、最後に1文字...
-
プログラム上での行のマージ方法
-
10進数から2進数に変換 例 185 ...
-
HTMLソースが表示のページのも...
-
Webサイト内に埋め込んだmp4動...
-
VBSでテキストファイルの2行目...
-
VBAでパワーシェルを実行したい...
-
数行削除してコピーするbatファ...
-
uwscでPauseキーが押されたら、...
-
プログラミングに興味があるの...
-
Fortranでシステム時刻をカレン...
-
Pythonでの文字列からfloatへの...
-
Python... 環境設定 初心者です...
-
画像生成AIのプロンプトの作り...
-
Google ColaboでGUI作成
-
このURLで広告を出しているのは...
-
ネットワークフォルダの中身を...
-
Pythonを使ってせん断応力図、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
プログラミングに興味があるの...
-
Google ColaboでGUI作成
-
数行削除してコピーするbatファ...
-
秀丸エディターでの置き換え
-
Fortranでシステム時刻をカレン...
-
覚えることが少ないプログラミ...
-
PowerAutomateで運賃検索がした...
-
uwscでPauseキーが押されたら、...
-
VBAでパワーシェルを実行したい...
-
Python... 環境設定 初心者です...
-
HTMLソースが表示のページのも...
-
batファイル、コマンドプロンプ...
-
Pythonでの文字列からfloatへの...
-
画像生成AIのプロンプトの作り...
-
テキストファイルの1行目のみを...
-
このURLで広告を出しているのは...
-
google Colabでmatplotlibの描...
-
VBSでテキストファイルの2行目...
-
そのまま使っただけなのに・・...
おすすめ情報