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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

解決済

テキストファイルから座標を読み込む際に、先頭の要素だけ抜けてしまう問題

old.exe
old.exe

総合スコア23

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

2回答

0リアクション

0クリップ

280閲覧

投稿2022/09/15 07:10

テキストファイルから座標を読み込むプログラムを作りました。このプログラムは以下のような仕事をします。

1.テキストファイルを読み込み、行を要素とするリストを作る
2.整形用の空白文字を取り除く
例)['','','1','','21','288']→['1','21','288']
3.strからfloat型に変換する。変換できなかったものはヘッダーと見なして削除する

以下、コードと対象のテキストファイルになります。テキストは長いので省略しています。

python

def str2float(cities): """ [[str,str],[str]] → [[float,float],[float]] """ for i in range(len(cities)): try: for j in range(len(cities[i])): cities[i][j] = float(cities[i][j]) except: print(f"I deleted {cities[0]}") del cities[0] continue def remove_blank(cities): for i in range(len(cities)): for j in range(len(cities[i])): try: cities[i].remove('') except: continue if cities[-1] == ['EOF']: del cities[-1] with open("ali535.tsp","r") as fin: cities = [data.split(' ') for data in fin.read().splitlines()] remove_blank(cities) str2float(cities) print(cities,len(cities))

ali535.tsp(txt)

NAME: ali535 TYPE: TSP COMMENT: 535 Airports around the globe (Padberg/Rinaldi) DIMENSION: 535 EDGE_WEIGHT_TYPE: GEO DISPLAY_DATA_TYPE: COORD_DISPLAY NODE_COORD_SECTION 1 36.49 7.49 2 57.06 9.51 3 30.22 48.14 4 5.15 -3.56 5 34.59 -106.37 ... ... ... 532 -6.13 39.13 533 47.28 8.33 534 51.33 0.14 535 24.58 91.53 EOF

こちらのテキストはhttp://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/tsp/からダウンロードできます。
以下、実行結果になります。

I deleted ['NAME:', 'ali535'] I deleted ['TYPE:', 'TSP'] I deleted ['COMMENT:', '535', 'Airports', 'around', 'the', 'globe', '(Padberg/Rinaldi)'] I deleted ['DIMENSION:', '535'] I deleted ['EDGE_WEIGHT_TYPE:', 'GEO'] I deleted ['DISPLAY_DATA_TYPE:', 'COORD_DISPLAY'] I deleted ['NODE_COORD_SECTION'] I deleted ['1', '36.49', '7.49'] [[2.0, 57.06, 9.51], [3.0, 30.22, 48.14], [4.0, 5.15, -3.56], [5.0, 34.59, -106.37], [6.0, 57.12, -2.12], [7.0, 16.45, -99.45], [8.0, 5.36, -0.1], [9.0, 28.56, -13.36], ... ... ... [529.0, 44.06, 15.21], [530.0, 45.45, 16.04], [531.0, 41.4, -1.03], [532.0, -6.13, 39.13], [533.0, 47.28, 8.33], [534.0, 51.33, 0.14], [535.0, 24.58, 91.53]] 534

以上になります。解決方法などありましたら回答よろしくお願いします。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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