首页 > 解决方案 > 当我尝试使用运算符比较两个列表时如何修复错误

问题描述

我试图在字符串中按字母顺序挑选最长的字符集。但是我不知道如何比较两个变量,我最初尝试使用len(str)这两个变量,current_biggest并且rn_str.

然而,这会导致错误说

'int' 类型的对象没有 len()'

然后,我尝试了几种不同的解决方法,直到您看到当前失败的列表比较。这很奇怪,因为我可以检查它们是否相等,但如果一个比另一个长则不能。任何有关如何修复它以及其他更有效方法的建议将不胜感激。我是编码新手,想尽可能多地吸收。

s = 'abcdebjnmzkloppk'

for i in range(len(s)-1):
    current_biggest = ['m']

rn_str =['m']


if (s[i] >= s[i+1]) and (i < len(s)):
    rn_str = i
if rn_str >= current_biggest:
    current_biggest = rn_str
    del rn_str

print(current_biggest) 

标签: python

解决方案


错误消息中给出了错误的原因:您正在尝试比较整数和列表。

在代码的早期,您将两者都定义current_biggestrn_str字符串列表。但是稍后在您的代码中您重新分配rn_stri,这是一个整数。稍后您尝试比较current_biggestand rn_str,然后它们具有不同的类型,因此比较不起作用。

您的代码中没有注释,因此您想要的算法不清楚。您的问题描述也不清楚,所以我无法给您更多帮助。但是您的问题似乎是两个常见问题之一:找到给定序列的递增子序列,其中一个问题要求子序列是连续的,而另一个问题则不需要。澄清你的问题,然后在网上搜索——这两个问题在网上和这个网站上都有很多答案。


推荐阅读