データがクリーンである、つまり二重引用符または角括弧が含まれていないため、str.translate
メソッドを使用して、リストのPythonのネイティブ文字列表現をMathematica形式に変換できます。
str.translate
を使用するには、まずstr.maketrans
メソッドを使用して変換テーブルを作成する必要があります。
data = [
[' Tulane-B (Tulane (Bacchus)) ', ' Florida Tech (Florida Tech) '],
[' Stanford-B (Stanford Prison Experiment) ', ' San Jose State (Megabyte) '],
[' Stanford-B (Stanford Prison Experiment) ', ' Duke (Brimstone) '],
[' Stanford-B (Stanford Prison Experiment) ', ' Oregon State (Beavers) '],
]
trans = str.maketrans("'[]", '"{}')
s = str(data).translate(trans)
print(s)
出力
{{" Tulane-B (Tulane (Bacchus)) ", " Florida Tech (Florida Tech) "}, {" Stanford-B (Stanford Prison Experiment) ", " San Jose State (Megabyte) "}, {" Stanford-B (Stanford Prison Experiment) ", " Duke (Brimstone) "}, {" Stanford-B (Stanford Prison Experiment) ", " Oregon State (Beavers) "}}
ほぼすべての作業がCで書かれたコードによって行われているので、それがCの速度で動作しますので、これは、PythonはPythonの文字列フォーマットでループを使用するよりも高速です。
FWIW、これはマイナーチェンジで、Pythonの2にもを行うことができます。 Python 2では、str.maketrans
メソッドはありません。代わりに、string.maketrans
ヘルパー機能を使用する必要があります。
各行を別々の行に表示する場合は、各行を前処理する必要があります。これは必然的に少し遅くなりますが、速度差は8000行ではほとんど目立たなくなります。
data = [
[' Tulane-B (Tulane (Bacchus)) ', ' Florida Tech (Florida Tech) '],
[' Stanford-B (Stanford Prison Experiment) ', ' San Jose State (Megabyte) '],
[' Stanford-B (Stanford Prison Experiment) ', ' Duke (Brimstone) '],
[' Stanford-B (Stanford Prison Experiment) ', ' Oregon State (Beavers) '],
]
# Convert data to strings with each row on a separate line
s = '[\n ' + ',\n '.join([str(row) for row in data]) + '\n]'
trans = str.maketrans("'[]", '"{}')
s = s.translate(trans)
print(s)
ない全てのPythonプログラマーはMathematicaを知っているので、あなたは、あなたの質問にご期待出力を追加する必要があり、出力
{
{" Tulane-B (Tulane (Bacchus)) ", " Florida Tech (Florida Tech) "},
{" Stanford-B (Stanford Prison Experiment) ", " San Jose State (Megabyte) "},
{" Stanford-B (Stanford Prison Experiment) ", " Duke (Brimstone) "},
{" Stanford-B (Stanford Prison Experiment) ", " Oregon State (Beavers) "}
}
。 '{{" a "、" b "}、{" c "、" d "}}'などのようなものが必要だと思います。だからあなたは自分でこれをコード化し、あなたのコードの試みを質問に貼り付けるべきです。 –
あなたの例は、私が代わりに書いた形式です。問題のポイントは、教育目的のためですが、これを行う簡単な方法があります。私は簡単に文字列の書式設定を行うことができますが、将来の時間を節約するために、それらがより効率的な方法であるかどうか疑問に思っています。 – tharvey
文字列の書式設定でこれを行うにはいくつかの方法があります。現在行っていることを実際に見ることができない場合、現在行っていることよりも効率的な方法を提案するのは少し難しいです。 –