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}替换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 =
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]]