
Pythonでリストの要素の順番を入れ替え、結合したい
以下のようなリスト(入力list)があります。"1"もしくは"2"が出てきたら、それぞれ次の要素と順番を入れ替え、かつ1つの要素に結合するスクリプトを書きたいのですが、案はありますでしょうか。以下の出力listのような出力を望んでいます。
入力 list=['a', 'b', '1', 'c', 'd', 'e', '2', 'f', '2', 'g']
出力 list=['a', 'b', 'c1', 'd', 'e', 'f2', 'g2']
1や2が出てくる回数はリストにより異なり、また1より2の方が先に出てくる場合もあります。またリストによっては1がない場合、2がない場合もあります。(ただし '1', '2' のように1と2が連続で出てくることはありません。かならず間に別の要素が入ります)
indexを使って要素の順番の入れ替えはできるようなのですが、最初に出てきたものしかとらえないので、例えば上の例でいうと2,gがg2に変換されません。また結合もできていませんが、indexを使った入れ替え方法を一応以下に記しておきます:
i=list.index("1")
j=list.index("2")
list[i],list[i+1]=list[i+1],list[i]
list[j],list[j+1]=list[j+1],list[j]
とすると、出力リストは['a', 'b', 'c', '1', 'd', 'e', 'f', '2', '2', 'g']となります。
(最後のg2が変換できていない。また結合もできていない)
Python初心者です。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
#スペース削除対策で スペースを_で表わしている
#使用する際にはスペースに置換すること
i=0
#"1","2"が最後にくることはないので、len(list)-1までの範囲で調べる
while ( i < len(list) - 1 ) :
____# 要素が"1"か"2"か調べる。
____if list[i] == "1" or list[i] == "2":
________# 次の要素と入れかえて結合した文字列list[i+1] + list[i]
________# を 現在の要素の値にする
________list[i] = list[i+1] + list[i]
________#次の要素は不要なので削除する
________del list[i+1]
____i += 1
入れ替えるとか結合するとかをちょっと難しく考えすぎてしまったのではないでしょうか?
ありがとうございます!!
そんなに簡単にできたのですね。確かに難しく考えすぎていたかもしれません。
何時間も頭をひねっていたので、ものすごいすっきり感です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- その他(プログラミング・Web制作) python 3.10で 同じlistに同じ構文で同じデータ代入した結果が異なる現象発生 7 2022/06/18 11:08
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
pythonの実行に関する質問
-
Python 3.12.2 か一番最新のパ...
-
CSVファイルの複数行削除
-
google Colabでmatplotlibの描...
-
AIの登場でプログラマーたちが...
-
OS入ってる機器のソフト・アプ...
-
パイソンのソースコードをChatG...
-
プログラミングに興味があるの...
-
プログラミングの雑談がしたい...
-
Google ColaboでGUI作成
-
JRのjsonファイルって使って大...
-
画像生成AIのプロンプトの作り...
-
Pythonのエラーメッセージをコ...
-
VBAでパワーシェルを実行したい...
-
Pythonについて。
-
itエンジニアに就職希望で未経...
-
ネットワークフォルダの中身を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# GetFilesで複数のファイルの...
-
Python - Excel で Webからデー...
-
STLのlistで重複するものだけを...
-
C言語:単語カウント
-
read.cgi等のタグの追加について
-
この曲のピアノの最後の和音が...
-
XML::DOM / XML::XPathでソート
-
PerlでXMLを解析して出力する。
-
複数のIP取得
-
leetcode21
-
どちのほうがすきですか?
-
Scheme 中置式から後置式へ
-
Pythonでのアニメーション
-
Pythonでリストの要素の順番を...
-
リストの中のDataFrameに他のDa...
-
pythonでのリスト内抽出について
-
C言語 leetcode21 Merge Two So...
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
メモリをアドレスを直接指定し...
おすすめ情報