我的任务是将字符串'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]
到
if list[element] is list[element-1]
但是错误保持不变。我已经用谷歌搜索过几次,但是总有一些列表不需要字符串格式,但是我需要它(对吗?)。
谢谢你的帮忙!NoAbL
首先,不要在内置python语句或数据结构(例如)之后list
,tuple
甚至在您导入的模块名称之后,都不要命名变量,这也适用于文件。例如,命名文件socket.py
并导入socket
模块肯定会导致错误(我会让您自己尝试)
在您的代码中element
是一个字符串,可迭代的索引必须是数字而不是字符串,因此您可以告诉python
给我第二个位置的物品。
但是现在您想说的是给我该项目,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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句