python - 排序列表输出: UTF-8

标签 python sorting utf-8

我正在获取一个输入文件,其中包含带有空格分隔的不同语句的数字列表,并获取这些数字,将两个数字相邻添加并打印出一个单词(如果是 UTF-8)。因此,如果数字列表为 67 5 100 1 11 97 98 10 1 110,则数字将变为 72、101、108、108 和 111,在 UTF-8 中读取 Hello。

我目前有以下代码:

file_name = input('Enter filename: ')
input_file = open(file_name, 'r')
word_list = []
count3 = 0

for line in input_file:
    count1 = 0
    count2 = 1
    count3 += 1
    word_str = ''
    line = line.split()
    length = len(line)

    while count1 < length:
        num_char = int(line[count1]) + int(line[count2])
        count1 += 2
        count2 += 2
        word_str += chr(num_char)
    word_list.append(word_str)

print (word_list)

示例输入文件:

67 5 100 1 11 97 98 10 1 110 
15 72 10 101 47 67 88 20 94 6 22 11

61 11 93 4 73 39 78 34 17 104
23 43 11 93 65 52 20 96 66 31 86 24 40 61 102 13 50 51
73 43 28 73 8 89 31 68 77 27 24 77 42 72 15 24 64 51
25 75 7 90 10 111 17 16

从这段代码中我得到输出:

['Hello', 'World!', '', 'Happy', 'Bhutanese', "teacher's", 'day!']

我的问题是我需要对列表中的输出进行排序,最后一条语句在前,第一个语句在最后。

因此,对于提供的数字,预期输出将是:

['Happy Bhutanese teacher's day!',
'Hello World!']

非常感谢任何帮助

最佳答案

您似乎不需要一个单独的单词列表 - 您需要一个句子列表,其中句子由空行分隔。

为了清楚起见,您应该将 word_list 重命名为 sentence_list。从现在开始,我将其称为 sentence_list

要构建句子,请在每个单词之间放置一个空格。由于句子跨越多行,因此您不想在每个循环中重新初始化 word_str - 您需要保留它。为此,请在循环之前将其初始化一次

word_str = ''
for line in input_file:
    ...

您不会总是将行的单词附加到列表中,word_list.append(word_str),您需要以不同于空行的方式处理单词。

如果刚刚处理的行是一个单词,则在末尾添加一个空格。

如果是空行,则将当前的 word_str 添加到 sentence_list 中,并将 word_str 重置为空字符串。

您可以通过检查行的长度来决定要执行的操作:空行的长度为 0。

if length == 0:
    sentence_list.append(word_str)
    word_str = ''
else:
    word_str += ' '

由于您希望最后一句首先出现在列表中,因此您需要在打印之前反转列表。

sentence_list.reverse()
print(sentence_list)

关于python - 排序列表输出: UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768858/

相关文章:

asp.net - 非常大的 View 状态破坏网络应用程序

arrays - 关于数组的问题之间的区别

objective-c - "incomplete universal character name"与 stringWithUTF8String

php - DOCX 编码问题

python - 使用python同时运行多个.exe文件

python - 仅使用 Python 访问 Linux 中的 SMART 属性?

C# 排序并放回 Regex.matches

linux - 将数据库文件纯文本更改为 sqlite

python - 如何在 bazel 中为 Python 和 pip 选择运行时?

python - 如何删除 .0 而不弄乱数字 10