python - Python 错误字符串索引必须是整数
问题描述
def is_double_char(str):
end = len(str)+1
print(type(end))
for i in range(1, len(str)):
add_one = i+1
print(type(i))
print(type(add_one))
if str[add_one, end].find(str[i]) != -1:
return True
return False
这是我拥有的代码。该方法应该查找字符串是否包含 2 个或更多相同的字符。
print(is_double_char("hello"))
______________________________
<class 'int'>
<class 'int'>
<class 'int'>
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-21-606a7223e550> in <module>()
----> 1 print(is_double_char("hello"))
<ipython-input-20-b1c815934cad> in is_double_char(str)
6 print(type(i))
7 print(type(add_one))
----> 8 if str[add_one, end].find(str[i]) != -1:
9 return True
10 return False
TypeError: string indices must be integers
我不明白。从我的调试打印中,我所有的索引都已经是整数了。有人可以帮忙吗?谢谢你。
解决方案
代码:
def is_double_char(str):
end = len(str)+1
for i in range(1, len(str)):
add_one = i+1
if str[add_one:end].find(str[i]) != -1:
return True
return False
print(f'hello: {is_double_char("hello")}')
print(f'helo: {is_double_char("helo")}')
输出:
hello: True
helo: False
我所做的唯一修改是您拼接列表的方式。此外,使用str
作为输入参数的名称是一种非常糟糕的做法。尝试使用类似 str_input 的东西。
推荐阅读
- docker - Windows 10 上的 Apache Airflow Dev 2.0 设置
- r - 在R中合并csv文件
- reactjs - 理解基于类的组件重写为功能组件
- directory - 哪些操作应该改变目录的修改日期?
- python - python os重命名与某个名称匹配的文件名
- jquery - jQuery - 将值附加到确认框内的 div
- html - Django模板在没有上下文的情况下从外键获取值
- wordpress - WooCommerce 为产品列表添加阅读更多按钮
- sql - 查询营业年度之间的记录
- android - Shrinker Config 文件中的 ProGuard 未解析引用