首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用于查找字符串中重复字符的索引列表(Python)

用于查找字符串中重复字符的索引列表(Python)
EN

Stack Overflow用户
提问于 2016-02-19 21:52:41
回答 4查看 1.3K关注 0票数 0

所以我的程序要求用户输入一个字符串列表,然后对字符串进行排序,如果同一字符串中的第一个字母再次重复,它会将其存储到另一个列表中。这是我到目前为止所拥有的。

代码语言:javascript
运行
AI代码解释
复制
iput = []
i = 0
final = []

while i < 1:
    iput += [input('Enter words here: ')]
    if not iput[-1]:
        i += 1

i = 0
z = 1
while i < len(iput) - 1:
    print(i)
    while iput[i][0] != iput[i][z]:
        if z == len(iput[i]):
            break
        z += 1

    i += 1

print(final)
print(iput)

我一直收到“字符串索引超出范围”的错误,并且想不出一种方法来添加具有上述要求的字符串。有什么建议吗?

EN

回答 4

Stack Overflow用户

发布于 2016-02-19 21:59:36

您的z将增长到比iput的长度更长的值。

z达到iput的长度时,您会中断内循环,但在外循环中永远不会重置它。

票数 0
EN

Stack Overflow用户

发布于 2016-02-19 22:03:54

您的代码将首先访问越界索引,然后检查该索引是否越界。在访问越界索引之前进行检查。

代码语言:javascript
运行
AI代码解释
复制
while i < len(iput) - 1:
    print(i)
    while z != len(iput[i]) and iput[i][0] != iput[i][z]:
        z += 1

    i += 1
票数 0
EN

Stack Overflow用户

发布于 2016-02-19 22:04:33

因为您应该检查所有元素的每个列表元素,所以您应该每隔一次while循环重置z,因此添加:

z = 1

结束while循环后:

代码语言:javascript
运行
AI代码解释
复制
while i < len(iput) - 1:
    print(i)
    while iput[i][0] != iput[i][z]:
        if z == len(iput[i]):
            break
        z += 1
   z = 1
   i += 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35515750

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文