You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python判断字符串包含列表元素时报TypeError错误求助

问题原因

  • 报错TypeError: 'in ' requires string as left operand, not list是因为你把in运算符的左右操作数写反了:vowels是列表类型,不能作为左操作数判断是否存在于单个字符word1[i]中,应该调整为判断当前字符是否属于元音列表。
  • 除此之外你的代码还有几个逻辑问题:
    • 函数内没有使用传入的FirstWord、SecondWord参数,反而直接读全局的word1、word2,不符合函数封装逻辑
    • 找到第一个元音就直接return,没法收集所有元音的位置,和你需要拼接所有元音下标的需求不符
    • 大小写元音列表可以合并,不用分开做两次判断

修正后的代码

# 用集合存储所有元音,判断成员的效率更高
all_vowels = {"A", "E", "I", "O", "U", "a", "e", "i", "o", "u"}

word1 = input("Please input 1st word: ")
word2 = input("Please input 2nd word: ")

def passcode(first_word, second_word):
    code_parts = []
    # 收集第一个单词的所有元音下标
    for idx, char in enumerate(first_word):
        if char in all_vowels:
            code_parts.append(str(idx))
    # 收集第二个单词的所有元音下标
    for idx, char in enumerate(second_word):
        if char in all_vowels:
            code_parts.append(str(idx))
    # 拼接成完整密码返回
    return ''.join(code_parts)

result = passcode(word1, word2)
print(result)

验证效果

输入Python和Snake时,代码会依次收集到Python里o的下标4,Snake里a的下标2、e的下标4,拼接后输出424,和你给出的示例结果完全匹配。

内容的提问来源于stack exchange,提问作者zаѓатhᵾѕтѓа

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:24:03