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

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

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

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

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

4回答

2782閲覧

Pythonでdatファイルに書き込む処理に挑戦しています

trainweather

総合スコア23

Python 3.x

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

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2017/07/14 08:13

編集2017/07/15 01:05

Python

1data

というリストを

Python

1f = open('dat.dat', 'a') 2f.writelines(str(data))

で書き出すと

Python

1[数値, 数値, ..., ..., 数値]

以上のように出力されるように改良しました
引き続き[]および,を取り除いてファイルに出力して最後に改行する方法を教えてもらえると助かります

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

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

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

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

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

guest

回答4

0

Python

1 2# coding: utf-8 3 4l = ['0', [36.8, 31.1, 36.1, 28.5], [0.16, 0.09, 0.09, 0.25]] 5 6new_l = [] 7 8for e in l: 9 t = type(e) 10 if t == type(str()): 11 new_l.append(e) 12 elif t == type(list()): 13 for s in e: 14 new_l.append(str(s)) 15 16print(' '.join(new_l) + '\n')

新しい配列に文字列なら突っ込んで、listなら
要素ごとに新しい配列に突っ込む方法。

python

1# coding: utf-8 2 3import re 4 5l = ['0', [36.8, 31.1, 36.1, 28.5], [0.16, 0.09, 0.09, 0.25]] 6 7print(re.sub(r'[\[\],]', '', ' '.join(map(str, l))))

listを文字列にして、その文字列からかっことカンマを削除する方法。

Python初心者ですが考えてみました。

投稿2017/07/14 14:48

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

data の形が [文字列, [数値, 数値, ...], [数値, 数値, ...]] という決まった形だとすると,data[0] だけ処理を分けてこう書けます.

python

1ret = "" 2 3for i, x in enumerate(data): 4 if i == 0: 5 ret += x 6 ret += " " 7 else: 8 ret += " ".join(list(map(str, x))) 9ret += "\n" 10 11with open("dat.dat", "a") as f: 12 f.write(ret)

一行で書くとこうです.

python

1with open("dat.dat", "a") as f: 2 f.write(" ".join([x if i == 0 else " ".join(list(map(str, x))) for i, x in enumerate(data)]) + "\n")

投稿2017/07/14 13:36

what_alnk

総合スコア147

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

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

0

python

1f.writelines([" ".join([x[0]] + map(str, x[1]) + map(str, x[2])) for x in data])

投稿2017/07/14 08:40

pashango2

総合スコア930

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

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

trainweather

2017/07/14 09:26

['0', [37.5, 30, 34.7, 28], [0.25, 0, 0.21, 0]] Traceback (most recent call last): File "rssi3.py", line 50, in <module> f.writelines([" ".join([x[0]] + map(str, x[1]) + map(str, x[2])) for x in data]) File "rssi3.py", line 50, in <listcomp> f.writelines([" ".join([x[0]] + map(str, x[1]) + map(str, x[2])) for x in data]) IndexError: string index out of range
pashango2

2017/07/14 13:43 編集

え、dataは2次元配列ではないんですか? それなら f.write(" ".join([data[0]] + map(str, data[1]) + map(str, data[2])) + "\n") になりますが、1次元配列ならリストの意味があまりない気がしますが。
guest

0

自己解決

全て数値にしてjoin,map,strを駆使して解決しました

投稿2017/07/15 01:21

trainweather

総合スコア23

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問