python - 当我尝试使用运算符比较两个列表时如何修复错误
问题描述
我试图在字符串中按字母顺序挑选最长的字符集。但是我不知道如何比较两个变量,我最初尝试使用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)
解决方案
错误消息中给出了错误的原因:您正在尝试比较整数和列表。
在代码的早期,您将两者都定义current_biggest
为rn_str
字符串列表。但是稍后在您的代码中您重新分配rn_str
给i
,这是一个整数。稍后您尝试比较current_biggest
and rn_str
,然后它们具有不同的类型,因此比较不起作用。
您的代码中没有注释,因此您想要的算法不清楚。您的问题描述也不清楚,所以我无法给您更多帮助。但是您的问题似乎是两个常见问题之一:找到给定序列的递增子序列,其中一个问题要求子序列是连续的,而另一个问题则不需要。澄清你的问题,然后在网上搜索——这两个问题在网上和这个网站上都有很多答案。
推荐阅读
- c# - 将新标签添加到现有注册设备的最佳方式(FCM、Xamarin.Forms、c#)
- django - 在 Django Rest Framework 中处理 500 个内部错误
- dataframe - 如果 Q 位为 0(即 100 英尺的倍数),那么 ADS-B 高度解码范围是多少?
- java - 使用 docx4j 在段落中加粗指定单词
- python - 在 python 环境中从 Dialogflow 中获取 Intents、Entities 和训练数据
- python - TBSelenium:Tor 页面立即关闭
- python - 在特定对象级别将 pandas DataFrame 中的列添加到深度嵌套的 JSON 中
- ssl - 需要使用开放 SSL 创建证书
- javascript - 修复 CSS 悬停时的按钮样式?
- sql - 在其中一列中将英亩转换为平方英尺