Python 如何使用嵌套循环和函数split()创建列表字母计数器?
我很难理解为什么这个程序不起作用。到目前为止,我所知道的是它是由嵌套循环或函数split()引起的Python 如何使用嵌套循环和函数split()创建列表字母计数器?,python,python-3.x,Python,Python 3.x,我很难理解为什么这个程序不起作用。到目前为止,我所知道的是它是由嵌套循环或函数split()引起的 您不需要alphabet.split(),因为它会返回一个与您的需要无关的列表[“abcd”] letters = "abcd" alphabet = "aacd" counter = [] for i, l in enumerate(letters): counter.append(alphabet.count(l)) print(counter) 输出: [2, 0, 1,
您不需要
alphabet.split()
,因为它会返回一个与您的需要无关的列表[“abcd”]
letters = "abcd"
alphabet = "aacd"
counter = []
for i, l in enumerate(letters):
counter.append(alphabet.count(l))
print(counter)
输出:
[2, 0, 1, 1]
您不需要
alphabet.split()
,因为它会返回一个与您的需要无关的列表[“abcd”]
letters = "abcd"
alphabet = "aacd"
counter = []
for i, l in enumerate(letters):
counter.append(alphabet.count(l))
print(counter)
输出:
[2, 0, 1, 1]
为了完整起见,这里有另一种方法:
letters = "abcdabcdabcdaz"
alphabet = "abcd"
counter = [0,0,0,0]
for letter in letters:
try:
counter[alphabet.index(letter)] +=1
except ValueError:
pass
print(counter)
.index()
将为您提供列表中所需元素的位置(或ValueError
)。通过捕获(并忽略)异常,您可以跳过增加字母表定义中不存在字母的计数器。为了完整起见,这里有另一种方法:
letters = "abcdabcdabcdaz"
alphabet = "abcd"
counter = [0,0,0,0]
for letter in letters:
try:
counter[alphabet.index(letter)] +=1
except ValueError:
pass
print(counter)
.index()
将为您提供列表中所需元素的位置(或ValueError
)。通过捕获(并忽略)异常,您可以跳过增加字母表定义中不存在字母的计数器。Heyo,可以尝试使用列表函数(将单词拆分为数组):
此程序输出
[1, 1, 1, 1]
嘿,也许可以试试列表功能(将单词拆分成数组):
此程序输出
[1, 1, 1, 1]
好你对n
的使用有点错误。您最好在字母
中获取给定字母的索引,并更新计数器
/split方法不用于拆分单词的索引?默认情况下,它会查找空格分隔符alphabet.split()
创建一个包含单个元素的列表,该元素不是您想要的。省去它,直接在外部循环中使用字母表,用于循环。您需要在上部循环中增加n。[字母表.字母中e的计数]
好。。你对n
的使用有点错误。您最好在字母
中获取给定字母的索引,并更新计数器
/split方法不用于拆分单词的索引?默认情况下,它会查找空格分隔符alphabet.split()
创建一个包含单个元素的列表,该元素不是您想要的。省去它,直接在外部循环中使用alphabet
,用于循环。您需要在上层循环中增加n。[alphabet.count(e)表示字母中的e]
如果我理解正确,他希望在计数器[0]
中计数a
,计数器[1]
中计数b
,等等。如果字母的出现次数超过1次,则您的示例将不起作用。是的,如果字母重复,则示例不起作用;/但我激动了一下:D@omri_saadon干杯:)我在给他写一个例子的时候,对enumerate()
有点生疏了,我采用了alphabet.index(字母)
方法,但是你的方法更简洁:)顺便说一句,也不要使用n=0
,因为它不再需要了。好的,好的。。因此,建议计数器动态增长。我已经更新了答案,我想这会通过你的测试:)@Favorettii如果我理解正确,他想在计数器[0]
中计数a
,计数器[1]
中计数b
,等等。如果字母的出现次数超过1次,你的例子就不起作用了。是的,如果字母重复,它就不起作用了;/但我激动了一下:D@omri_saadon干杯:)我在给他写一个例子的时候,对enumerate()
有点生疏了,我采用了alphabet.index(字母)
方法,但是你的方法更简洁:)顺便说一句,也不要使用n=0
,因为它不再需要了。好的,好的。。因此,建议计数器动态增长。我已经更新了答案,我想这会通过你的测试:)@favoretithank you!:D如果我能给你的两个答案打个绿色的勾号,我会说:谢谢如果我能给你的两个答案打个绿色的勾号,我会:D