gpt4 book ai didi

string - Python3 TypeError : list indices must be integers or slices, 不是 str

转载 作者:行者123 更新时间:2023-12-01 18:57:39 25 4
gpt4 key购买 nike

我的任务是将字符串 'AAABBCCDAABBB' 放入如下列表中:['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 语句或数据结构(例如 listtuple)甚至您导入的模块的名称来命名变量,这也是适用于文件。例如,将文件命名为 socket.py 并导入 socket 模块肯定会导致错误(我会让您自己尝试一下)

在你的代码中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)

关于string - Python3 TypeError : list indices must be integers or slices, 不是 str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35957085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com