Python:如何打印列表,其中包含列表中每个项目的标签

标签 python list file

我正在为我的 CSC 入门类(class)做一个 python 项目。我们得到一个 .txt 文件,基本上有 200,000 行单个单词。我们必须逐行读取文件,并计算字母表中每个字母作为单词的第一个字母出现的次数。我已经计算出计数并将其存储在列表中。但现在我需要以格式打印它

"a:10,898 b:9,950 c:17,045 d:10,596 e:8,735
f:11,257 .... " 

另一个方面是它必须每行打印 5 个字母计数,就像我上面所做的那样。

这就是我到目前为止正在处理的事情......

def main():
    file_name = open('dictionary.txt', 'r').readlines()
counter = 0
    totals = [0]*26
    alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
    for i in file_name:
        for n in range(0,26):
            if i.startswith(alphabet[n]):
                totals[n] = totals[n]+1
    print(totals)

main()

此代码当前输出

[10898, 9950, 17045, 10675, 7421, 7138, 5998, 6619, 6619, 7128, 1505, 1948, 5393, 10264, 4688, 6079, 15418, 890, 10790, 20542, 9463, 5615, 2924, 3911, 142, 658]

最佳答案

强烈推荐使用 dictionary来存储计数。它将极大地简化您的代码,并使其速度更快。我将把它作为练习留给你,因为这显然是家庭作业。 (其他提示:Counter 更好)。此外,现在您的代码仅适用于小写字母,而不适用于大写字母。您需要添加额外的逻辑来将大写字母视为小写字母,或者单独对待它们。现在你只需忽略它们即可。

话虽如此,以下内容将为您当前的格式完成:

print(', '.join('{}:{}'.format(letter, count) for letter, count in zip(alphabet, total)))

zip接受 n 个列表并生成一个包含 n 个元素的新元组列表,每个元素都来自输入列表之一。 join使用提供的分隔符将字符串列表连接在一起。和format执行字符串插值,以使用格式说明符使用提供的值填充字符串中的值。

关于Python:如何打印列表,其中包含列表中每个项目的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29157123/

相关文章:

python - 搜索元组列表的字典

c# - 如何将一个文件夹的内容分别打开到不同的富文本框?

android - Python 使用 ApkTool 和 Subprocess 反编译 APK

python - 使用 Python 的 `%` 计算 C 的 `%` ?

python - 2.5 的纯 Python 有理数模块

python - Django Rest Framework中的AuthToken : non_field_errors

python - 在列表理解期间使用附加更改列表

list - 在 Prolog 中搜索(相同)两个元素的列表

python - 从字典中的键中创建一个列表,考虑到它们的对应值

c# - "File in use"写入文本文件时出错