Python 比较和打印嵌套循环中的元素

Python 比较和打印嵌套循环中的元素,python,python-2.7,for-loop,Python,Python 2.7,For Loop,程序通过在word字符串中循环来识别字符串word中的一个元素是否为辅音,然后在每次迭代中通过word字符串来识别,在辅音列表中迭代,并比较word字符串中的当前元素是否等于辅音列表中的当前元素 如果是,则单词字符串的当前元素是一个辅音,并打印该辅音(不是辅音的索引,而是实际辅音,例如“d”) 问题是,我得到的是: 1 1 我做错了什么?嵌套循环是否应该工作,以便下面的循环为上面循环中的每个元素迭代每个元素?也就是说,上面的每个索引使下面的循环遍历每个索引 这就是节目: word = "Hel

程序通过在
word
字符串中循环来识别字符串
word
中的一个元素是否为辅音,然后在每次迭代中通过
word
字符串来识别,在
辅音列表中迭代,并比较
word
字符串中的当前元素是否等于
辅音列表中的当前元素

如果是,则
单词
字符串的当前元素是一个辅音,并打印该辅音(不是辅音的索引,而是实际辅音,例如“d”)

问题是,我得到的是:

1
1
我做错了什么?嵌套循环是否应该工作,以便下面的循环为上面循环中的每个元素迭代每个元素?也就是说,上面的每个索引使下面的循环遍历每个索引

这就是节目:

word = "Hello"

consonants = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'z']

for character in range(len(word)): 
    for char in range(len(consonants)): 
        if consonants[char] == word[character]: 
            consonant = word[character]
            print consonant
你误读了输出。字符是小写字母L,而不是数字1

换句话说,您的代码按设计工作。大写字母
H
不在
辅音
列表中,但
Hello
中的两个小写字母
l

注意,在这里为
辅音
使用
set
会更有效;您不必遍历整个列表,只需在
中使用
,即可测试成员资格。这也适用于列表,但在集合中更有效。如果将
word
值小写,则还可以匹配
H

最后但并非最不重要的一点是,您可以直接循环
word
字符串,而不是使用
范围(len(word))
然后使用生成的索引:

word = "Hello"
consonants = set('bcdfghjklmnpqrstvwxz')

for character in word.lower():
    if character in consonants:
        print character
演示:

你误读了输出。字符是小写字母L,而不是数字1

换句话说,您的代码按设计工作。大写字母
H
不在
辅音
列表中,但
Hello
中的两个小写字母
l

注意,在这里为
辅音
使用
set
会更有效;您不必遍历整个列表,只需在
中使用
,即可测试成员资格。这也适用于列表,但在集合中更有效。如果将
word
值小写,则还可以匹配
H

最后但并非最不重要的一点是,您可以直接循环
word
字符串,而不是使用
范围(len(word))
然后使用生成的索引:

word = "Hello"
consonants = set('bcdfghjklmnpqrstvwxz')

for character in word.lower():
    if character in consonants:
        print character
演示:


哇,我没意识到“H”和小写的“H”是不同的。这很有趣。所以
中的
语句也可以用同样的方式与列表一起使用?谢谢你!:)哇,我没意识到“H”和小写的“H”是不同的。这很有趣。所以
中的
语句也可以用同样的方式与列表一起使用?谢谢你!:)