我试图在一行中打印一个字符串,后跟一个空格,然后是一个数字。该字符串来自unicode中的长列表,其中一些(但不是全部)是从右到左的格式。我的问题是,当我使用这种格式的字符串时,我想要的顺序会被颠倒。
这是一个最小的工作示例:
line1='abcd'
line2='אבגד'
print line1+' '+str(1)
print line2+' '+str(1)
输出
abcd 1
אבגד1
第一个输出是所需的顺序,但第二个输出不是。有没有办法避免这种逆转?
另外,我只需要使用Python Standard Library。
答案 0 :(得分: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