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

2024-04-18 10:57:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)

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


Tags: 字符串用户程序列表inputlenif排序
3条回答

因为您应该使用所有元素检查每个列表元素,所以应该重置zevery while循环,因此添加:

z = 1

结束while循环后:

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

您的代码将首先访问out-bounds索引,然后检查索引是否越界。在访问越界索引之前检查一下。在

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

    i += 1

您的z的长度将超过iput的长度。在

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

相关问题 更多 >