2016-12-08 35 views
-1

私はa = [a、2、b、3、c、4、d、3]のような形式のリストを持っているといいます。作成できるファイルに書き込みたい等ファイルに書き込む(Python)

^2
B^3
C^4

と:上付き文字、などが挙げられます。可能な方法は可能です(実際のインデックスのようにインデックスを適切にフォーマットする必要があります)。

+0

私はこのリストを2つの部分に分割することをお勧めします。 ^( 'before = [a、b、c]')とAfter ^( 'after = [2,3,4]')の前に。次に、 'csv'ライブラリを使って各リストの要素間に'^'を加えた行に各リストのインデックス要素を書き出します。 (最初の一般的な考え方)。 – ralston

+0

デフォルトでは、出力は標準文字セットになります。典型的には、美化、さまざまなフォント、表または段落などでフォーマットされた出力が必要な場合は、レポートライブラリ/モジュールを使用する必要があります。下付き文字と上付き文字は同じカテゴリに分類されます。上付き文字に特有です。この回答が役立つかどうかを確認してください。 http://stackoverflow.com/questions/8651361/how-do-you-print-superscript-in-python –

答えて

0

基本的にはファイルを開き、次に連続する要素を^で結合してから、これらのすべてを改行で結合します。最後に、これはファイルに書き込まれ、ファイルが閉じている:

with open('filename.txt', 'w') as file: 
    it = iter(a) 
    file.write('\n'.join('^'.join([first, str(second)]) for first, second in zip(it, it))) 

何かが参加し、内包あなたはまた、書式設定を使用することができます使用しない場合:

with open('filename.txt', 'w') as file: 
    template = '{}^{}\n' * (len(a) // 2) 
    formatted = template.format(*a) 
    file.write(formatted) 
1

このような単純な:

files=open('write.txt','a') 
a = ['a','2','b','3','c','4','d','3'] 
count=0 
while count<len(a): 
    files.write(a[count]+'^'+a[count+1]+'\n') 
    count=count+2 
0

これを実行する簡単な方法があります。 print文をあなたの書いたものに置き換えれば、あなたはうまくいくでしょう。

2枚に分割して最初に準備リストを:

a = ['a',2,'b',3,'c',4,'d',3] 
first = a[0::2] 
second = a[1::2] 

次に列挙してループ最初のリストを、2番目の値を追加します。

for i, f in enumerate(first): 
    super = '%s^%s' % (f, second[i]) 
    print(super) # replace with write function 

出力は次のようになります。

a^2

b^3

C^4

D^3

これは単純な、それを維持する必要があります!

+0

'zip(first、second)'はインデックス作成を不要にするために使うこともできます。 – MSeifert

関連する問題