2012-04-15 8 views
1

リストに\を使用するエスケープシーケンスを知っている人はいませんか?Pythonリストでを使う方法

List = ['a','B','c','D','\'] # My python interpreter thinks I want 
          # a line continuation but I want the 
          # actual ASCII character. 
+0

を、それがリストにあることを全く特別なものではありません。 1つのバックスラッシュで文字列リテラルを作成したいだけです。 –

+0

これは実際にはリストとは関係ありませんが、 '\\'文字は文字列*の中で特別なものです。 – Cameron

答えて

8

これはあなたが前に別の\と\を "エスケープ"、

List = ['a','B','c','D','\\'] 

に動作します。さて、 "List"はおそらく変数名にとって最良の選択肢ではありません。

基本的に、特別なPython文字の ではなく、単純な "\"文字として\を使用する場合は、そのうちの2つを使用する必要があります。

たとえば、コード内で2つ使用されていても、リスト内に単一のバックスラッシュが表示され、単一の バックスラッシュが印刷されます。

for c in List: 
    if c == '\\': 
     print 'Found \\.' 

出力:

Found \. 
+0

実際の名前ではなく、単なる例であり、ダブルバックラッシュはうまく動作しないようで、この '\\'を印刷します。私はちょうど '\'を印刷する何かのために行っています – RandomPhobia

+0

@RandomPhobiaそれがあります。これを試してください:リストを印刷してください、それはあなたにバックスラッシュを与えます – Levon

+1

@RandomPhobia:いいえ、二重バックスラッシュは正しいです。メモリ内の実際の文字列にはバックスラッシュが1つしか含まれていません。 2つのバックスラッシュを印刷する理由は、Pythonスクリプトにコピー&ペーストして構文エラーではなく同じ値を得ることができるからです。 'print '、' .join(List)'を実行すると、そこにバックスラッシュが1つしかないことがわかります。 –

2

それは次のようになります。二重のバックスラッシュを使用して

List = ['a','B','c','D','\\'] 

あなたは文字をエスケープすることができます。それはPython Reference - Lexical Analysisセクションで詳述されています。

それはあなたの単一のバックスラッシュをお返しします:

>>> print chr(ord(List[-1])) 
\ 
+0

または 'print List [-1]'もうまくいくでしょう。 – Levon

+0

@リヴァン:それはバックスラッシュを付けるという点を痛感することでした。しかし、あなたは絶対に正しいです。 – Makoto

関連する問題