所以我的程序要求用户输入一个字符串列表,然后对字符串进行排序,如果同一字符串中的第一个字母再次重复,它会将其存储到另一个列表中。这是我到目前为止所拥有的。
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)
我一直收到“字符串索引超出范围”的错误,并且想不出一种方法来添加具有上述要求的字符串。有什么建议吗?
发布于 2016-02-20 05:59:36
您的z
将增长到比iput
的长度更长的值。
当z
达到iput
的长度时,您会中断内循环,但在外循环中永远不会重置它。
发布于 2016-02-20 06:03:54
您的代码将首先访问越界索引,然后检查该索引是否越界。在访问越界索引之前进行检查。
while i < len(iput) - 1:
print(i)
while z != len(iput[i]) and iput[i][0] != iput[i][z]:
z += 1
i += 1
发布于 2016-02-20 06:04:33
因为您应该检查所有元素的每个列表元素,所以您应该每隔一次while循环重置z
,因此添加:
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
https://stackoverflow.com/questions/35515750
复制相似问题