根据长度连接unicode字符串

时间:2018-03-30 11:16:37

标签: python unicode concatenation string-concatenation

我有一个unicode文本,分为不同的段。我想根据它们的长度连接它们,但要确保没有重复的段。 这是psuedo-cdoe:

i=0
text = 'whole text'
spaceString = ' '
avgLength = len(text)/len(total number of segments)
newtext=[]
previousLength = len(segments[i-1])
nextLength = len(segments[i+1])
for each segment [i]:
    if len(segments[i])<avgLength:
        compare previousLength and nextLength and get the lower result
        Concatenate segment[i] to either segment[i+1] or segment[i-1] (and attach to newtext) depending on which is lower
    else if segment[i]>=avgLength:
         Attach segment[i] to newtext and move to next segment


    elif . . . 

目的是加入小于平均长度的片段。如果任何细分小于平均长度,请比较previousLengthnextLength,并将segment i加入到较小的细分中。 (第一段可能小于或大于平均值)。但是,如果任何段超过平均长度,则只需附加该段。 newtext应与text类似,但应包含大于或等于平均细分的长度的细分。 谢谢

1 个答案:

答案 0 :(得分:1)

根据我对你的问题的理解,我已经写了以下代码。

如果它不是您要找的,请您澄清您的要求,我可以适当地编辑代码。 - 也许尝试用伪代码编写它?

代码:

temp_string = ''
for i in range(len(segments)):
  if len(segments[i]) < avgLength:
    #if it is in the temp string do nothing to avoid repitition
    #else add to temp_string
    if segments[i] in temp_string:
      continue
    else:
      temp_string += spaceString + segments[i]

    #if temp_string is not >= avgLength, add it to newtext and reset temp_string
    if len(temp_string) >= avgLength:
      newtext.append(temp_string)
      temp_string = ''
  else:
    #when if len(segments[i]) >= avgLength:
    #if the segment is in the temp_string, append temp_string and reset it
    if segments[i] in temp_string:
      newtext.append(temp_string)
      temp_string = ''
    else:
      #if segment is not in the temp_string, add space and segment
      temp_string += spaceString + segments[i]
      #add to newtext and reset
      newtext.append(temp_string)
      temp_string = ''