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

Python新手求助:如何找出三个字符串中的最长字符串?

解决三个字符串中最长字符串的问题

先看你代码里的几个核心问题:

  • 开头直接把srt1、str2、str3赋值成它们的长度,这会丢失原字符串内容,后续无法返回最长的原字符串。
  • 函数longest_word里的循环逻辑完全错误:enumerate(longest_word)是遍历函数对象本身,毫无意义;同时你使用了longest_word[i],但既没定义i,函数本身也不是可索引的序列。

下面给你两种实现方式,一种是用for循环手动遍历(贴合你想理解Python循环的需求),另一种是Python更简洁的内置函数写法。

方式一:用for循环手动查找

先把三个字符串放进列表,初始化变量保存当前最长字符串,再逐个遍历比较更新:

str1 = "eihd39d9"
str2 = "xkn59438" 
str3 = "chdsye847"

def longest_word(strs):
    # 初始化最长字符串为列表第一个元素
    longest = strs[0]
    for s in strs:
        # 比较当前字符串与最长字符串的长度
        if len(s) > len(longest):
            longest = s
    return longest

# 调用函数,传入包含三个字符串的列表
result = longest_word([str1, str2, str3])
print(result)  # 输出 chdsye847

这个逻辑和你熟悉的C++思路一致:先设定初始值,循环遍历每个元素,不断更新最大值(这里是最长字符串)。

方式二:用Python内置函数max()

Python内置的max()函数可以通过key参数指定比较规则,一行代码就能解决:

str1 = "eihd39d9"
str2 = "xkn59438" 
str3 = "chdsye847"

longest = max(str1, str2, str3, key=len)
print(longest)  # 输出 chdsye847

key=len表示按照字符串的长度进行比较,max()会直接返回长度最长的那个字符串。

内容的提问来源于stack exchange,提问作者Albert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:20:31