0

次の2Dリストがあります

data = [['2013-02-03', 'London', 'miles', '25'], ['2013-02-03', 'Newcastle', 'miles', '25'], ['2013-02-03', 'Birmingham', 'miles', '62']]

''2Dリストをテキストファイルのjavascript関数に渡すことができるように、列のいずれかを削除できる必要があります。たとえば、下の最後の列です。

data = [['2013-02-03', 'London', 'miles', 25], ['2013-02-03', 'Newcastle', 'miles', 25], ['2013-02-03', 'Birmingham', 'miles', 62]]

関数があり、単一の値で結果を取得できます

r = "['2013-02-03', 'London', 'miles', '25']"


def rreplace(s, old, new, occurrence):
    li = s.rsplit(old, occurrence)
    return new.join(li)

    rreplace(p, "'", '', 2)

"['2013-02-03', 'Feltham', 'less_than_one_day', 25],"

この結果を達成するためのより良い方法を提案できる人はいますか?

for ループ、map/lambda、iter を使用していくつかの方法を試しました。リストをループしたり、単一のリスト内の要素を変更したりできますが、両方を実行して結果を出力することはできません。

4

1 に答える 1

3

値のリストを Python として処理するだけです。

for row in data:
    row[-1] = int(row[-1])

dataこれにより、ネストされたリストの最後の各要素が、それらに相当する整数に置き換えられます。

次に、jsonモジュールを使用してこれを有効な JavaScript に変換します。

import json

r = json.dumps(data)

結局のところ、JSON は JavaScript のサブセットです。

クイックデモ:

>>> data = [['2013-02-03', 'London', 'miles', '25'], ['2013-02-03', 'Newcastle', 'miles', '25'], ['2013-02-03', 'Birmingham', 'miles', '62']]
>>> for row in data:
...     row[-1] = int(row[-1])
... 
>>> data
[['2013-02-03', 'London', 'miles', 25], ['2013-02-03', 'Newcastle', 'miles', 25], ['2013-02-03', 'Birmingham', 'miles', 62]]
>>> import json
>>> json.dumps(data)
'[["2013-02-03", "London", "miles", 25], ["2013-02-03", "Newcastle", "miles", 25], ["2013-02-03", "Birmingham", "miles", 62]]'
于 2013-05-03T13:52:32.417 に答える