变音符号作为额外的字母。如何在python中否决这一点?

时间:2017-11-29 20:57:23

标签: python

我编写了一个阅读实验,其中的单词在屏幕上逐一显示。这些单词是从.txt文件(UTF-8)中提取的,包含分为音节的德语单词。音节之间的划分是通过' - '来完成的。所以.txt文件包含这样的单词:

  

zwei-t​​er Die-nerkünst-li-cheWürst-chen

该计划的目的是正确显示单词,所以没有' - ':

  

zweiterDienerkünstlicheWürstchen

当一个单词不包含Umlaut时,一切顺利,使用以下代码:

# Strip newlines and split into syllables
    syllables = word.strip().split( '-' )

    word = ''.join( syllables )

    # Index for keeping track in which color to display the next syllable
    color_index = 0

    letter_count = 0

    for syllable in syllables:

        # Pad the syllable for spaces for every letter of the word that is not part of this syllable
        # This ensures proper placement of the syllable on the screen
        padded_syllable = ' ' * letter_count + syllable + ' ' * ( len( word ) - letter_count - len( syllable ) )

        text = visual.TextStim( 
                win=window, 
                text=padded_syllable, font='Courier New', color=colors[color_index], colorSpace='rgb',
                units='pix', pos=( 0, -234 ),height =68,
        )
        text.draw()

        letter_count += len( syllable ))

但是,当一个字母包含一个变音符号时,单词部分之间的间距会出错,那么这个字母似乎算作两个。 然后“künst-li-che”显示为“künstliche”,它应该是“künstliche”。

有没有办法将Umlaut的一封信作为一个字母计算?

1 个答案:

答案 0 :(得分:1)

如果您只是试图删除所有连字符(并且您所说的没有暗示您不是),那么您可以像这样删除它们:

<string>.replace('-','')

示例:

'zwei-ter Die-ner künst-li-che Würst-chen'.replace('-','')
'zweiter Diener künstliche Würstchen'

我也没有遇到您使用join

描述的问题
>>> y = 'zwei-ter Die-ner künst-li-che Würst-chen'.split('-')
>>> y
['zwei', 'ter Die', 'ner künst', 'li', 'che Würst', 'chen']
>>> ''.join(y)
'zweiter Diener künstliche Würstchen'