Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 文本文件中的元音计数器_Python 3.x - Fatal编程技术网

Python 3.x 文本文件中的元音计数器

Python 3.x 文本文件中的元音计数器,python-3.x,Python 3.x,在我的文件中,我有密西西比州、加利福尼亚州、威斯康星州的单词,我想做的是计算每个元音中有多少个元音,然后输出,但每次我每个元音得到1,输出每次都会改变,如: {'a':1,'u':1,'o':1,'y':1,'i':1,'e':1} {'o':1,'y':1,'e':1,'a':1,'i':1,'u':1}替换 import sys import string from collections import Counter vowels = "aeiouy" try: in_file =

在我的文件中,我有密西西比州、加利福尼亚州、威斯康星州的单词,我想做的是计算每个元音中有多少个元音,然后输出,但每次我每个元音得到1,输出每次都会改变,如: {'a':1,'u':1,'o':1,'y':1,'i':1,'e':1}

{'o':1,'y':1,'e':1,'a':1,'i':1,'u':1}

替换

import sys
import string
from collections import Counter
vowels = "aeiouy"
try:
    in_file = open("Vowels.txt","r")
    count = {x:sum([1 for char in vowels if char==x])for x in 'aeiouy'}
    print(count)

except FileNotFoundError:
        print("The text file is not found")
        sys.exit(1)
in_file.close()

第一行是实际读取文件的内容。第二行与您的行非常相似,只是出现了
txt

将它们放在一起,并使用python的
功能:

txt = in_file.read()
count = {x:sum([1 for char in txt if char==x])for x in 'aeiouy'}
对于示例输入,输出为:

try:
    with open("Vowels.txt","r") as in_file:
        txt = in_file.read()
        count = {x:sum([1 for char in txt if char==x])for x in 'aeiouy'}
        print(count)
except IOError:
        print("The text file is not found")
        sys.exit(1)
如上所述,但秩序井然 字典是无序的。如果您想要一个有序列表,请在以下行中替换:

{'a': 2, 'e': 0, 'i': 8, 'o': 2, 'u': 0, 'y': 0}
根据上述内容,输出为列表列表:

 count = [ [x,sum([1 for char in txt if char==x])] for x in 'aeiouy']

列表保留其顺序。

从什么时候开始,他们在元音中添加了
y
,这就是我学习它的方式:aeiou,有时是ylol:)。你所说的有时
y
是什么意思。所以
y
是元音,有时不是?是的,我在学校就是这样学的:|我看到你用v代替了x,在=登录计数后添加了dict,这有什么原因吗?@Marcos OK。我只是修改了答案以突出显示所需的最小更改。这使它更简单谢谢你,但我对我的输出提出了疑问,我的输出是否可以使它始终按顺序排列,而不是像我发布它那样随机排列?为了保持顺序,你可以使用dict,也可以不使用dict,而是使用列表或元组。您选择哪一个取决于您最终希望如何使用这些信息。@Marcos OK。我添加了一个使用列表的示例。
 count = [ [x,sum([1 for char in txt if char==x])] for x in 'aeiouy']
[['a', 2], ['e', 0], ['i', 8], ['o', 2], ['u', 0], ['y', 0]]