2016-05-16 19 views
0

我試圖在單行中打印一個字符串,後跟一個空格,然後跟一個數字。該字符串來自unicode中的一長串列表,其中一些(但不是全部)列表以從右向左的格式顯示。我的問題是,當我使用這種格式的字符串時,我想要的順序是相反的。如何使用unicode打印和保留從左到右的順序

這裏是一個最小的工作示例:

line1='abcd' 
line2='אבגד' 
print line1+' '+str(1) 
print line2+' '+str(1) 

的輸出中是

abcd 1 
אבגד1 

第一輸出處於所需的順序,但第二個是沒有的。有沒有辦法避免這種逆轉?我需要使用Python Standard Library

回答

0

在要打印的字符串的開頭添加一個從左到右的標記(表示爲u'\ u200E')。這是一個不可見的字符,它會強制文本的方向,所以它不會對以這種方式打印的文本產生負面影響。下面的代碼生成所需的輸出:

print u'\u200E'+line1+' '+str(1) 
print u'\u200E'+line2+' '+str(1) 

欲瞭解更多信息,請參閱https://en.m.wikipedia.org/wiki/Left-to-right_mark

+0

起初我以爲我需要首先弄清楚哪些字符串是從右到左的語言,但事實證明我只需將該字符添加到所有字符串中,不會產生負面影響。另外,通過測試,我發現它需要在_before_之前,而不是在字符串之後。我可以在此基礎上發佈更完整的答案,但我不確定這是否是良好的禮儀。 –

相關問題