如何使用嵌套循环和函数split()创建列表字母计数器?

2024-04-20 12:27:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难理解为什么这个程序不起作用。到目前为止,我所知道的是它是由嵌套循环或函数split()引起的。你知道吗

letters = "abcd"
alphabet = "abcd"

counter = [0,0,0,0]

n = 0
splitAlpha = alphabet.split()
for letter in splitAlpha:
    for key in letters:
        if key == letter:
            counter[n] +=1
            n+=1

print(counter)

Tags: key函数in程序forifcountersplit
3条回答

为了完整起见,这里有另一种方法:

letters = "abcdabcdabcdaz"
alphabet = "abcd"

counter = [0,0,0,0]

for letter in letters:
    try:
        counter[alphabet.index(letter)] +=1
    except ValueError:
        pass

print(counter)

<list>.index(<element>)将给出所需元素在列表中的位置(或者ValueError,如果找不到)。通过捕捉(并忽略)异常,可以跳过增加alphabet定义中不存在的字母的计数器。你知道吗

嘿,也许可以试试list函数(将单词拆分成数组):

letters = "abcd"
alphabet = "abcd"

counter = [0,0,0,0]

n = 0
splitAlpha = list(alphabet)
for letter in splitAlpha:
    for key in letters:
        if key == letter:
            counter[n] +=1
            n+=1

print(counter)

此程序输出

[1, 1, 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]

相关问题 更多 >