我的任务是获取字符串'AAAABBBCCDAABBB'
放入这样的列表中:['A','B','C','D','A','B']
我现在已经为此工作了 2 个小时,但无法找到解决方案。到目前为止,这是我的代码:
list = []
string = 'AAAABBBCCDAABBB'
i = 1
for i in string:
list.append(i)
print(list)
for element in list:
if list[element] == list[element-1]:
list.remove(list[element])
print(list)
我是编程新手,错误“TypeError:列表索引必须是整数或切片,而不是 str”总是出现......
我已经改变了比较
if list[element] == list[element-1]
to
if list[element] is list[element-1]
但错误保持不变。我已经用谷歌搜索了几次,但总是有一些列表不需要字符串格式,但我需要它(我对吗?)。
感谢您的帮助!NoAbL
首先,不要在内置 python 语句或数据结构之后命名变量,例如list
, tuple
甚至是您导入的模块的名称,这也适用于文件。例如命名你的文件socket.py
并导入socket
module 肯定会导致错误(我会让你自己尝试一下)
在你的代码中element
是一个字符串,可迭代的索引必须是数字而不是字符串,所以你可以告诉python
给我位置 2 的物品。
但现在你想说给我这个位置的物品A
这甚至在英语中都无效,更不用说编程语言了。
你应该使用enumerate
函数,如果你想在循环遍历迭代时获取它的索引,或者你可以这样做
for i in range(len(list))
并循环遍历列表的长度范围,无论如何,您实际上并不需要这些元素。
这是实现您想要做的事情的更简单的方法
s = string = 'AAAABBBCCDAABBB'
ls = []
for i in s:
if ls:
if i != ls[-1]:
ls.append(i)
else:
ls.append(i)
print(ls)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)