文字列の2つの列(x、y座標)間のタブ/空白を削除し、列をコンマで区切り、各列の最大値と最小値をリストするPythonでスクリプトを作成しました(xとy座標ごとに2つの値) . 例えば:
100000.00 60000.00
200000.00 63000.00
300000.00 62000.00
400000.00 61000.00
500000.00 64000.00
なりました:
100000.00,60000.00
200000.00,63000.00
300000.00,62000.00
400000.00,61000.00
500000.00,64000.00
10000000 50000000 60000000 640000000
これは私が使用したコードです:
import string
input = open(r'C:\coordinates.txt', 'r')
output = open(r'C:\coordinates_new.txt', 'wb')
s = input.readline()
while s <> '':
s = input.readline()
liste = s.split()
x = liste[0]
y = liste[1]
output.write(str(x) + ',' + str(y))
output.write('\n')
s = input.readline()
input.close()
output.close()
上記のコードを変更して、座標を 2 つの 10 進値から 1 つの 10 進値に変換し、2 つの新しい列のそれぞれを x 座標 (左の列) の値に基づいて昇順に並べ替える必要があります。
私は次のように書き始めましたが、値をソートしていないだけでなく、y 座標を左側に、x 座標を右側に配置しています。さらに、値は文字列であり、私が知っている唯一の関数は %f を使用しており、浮動小数点数が必要であるため、小数を変換する方法がわかりません。以下のコードを改善するための提案はありますか?
import string
input = open(r'C:\coordinates.txt', 'r')
output = open(r'C:\coordinates_sorted.txt', 'wb')
s = input.readline()
while s <> '':
s = input.readline()
liste = string.split(s)
x = liste[0]
y = liste[1]
output.write(str(x) + ',' + str(y))
output.write('\n')
sorted(s, key=lambda x: x[o])
s = input.readline()
input.close()
output.close()
ありがとう!