我有一个包含这些元素的列表(列表由str(elements)组成):
['-0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15']
我想把它处理成这样的输出
['-0', '1#', '15#']
如果元素是-x,我想把它留在那里,所以我取最后2个元素,如果间隙是1,那么在最后一个元素之前移除元素。 代码如下:
for k in range(len(l1)):
if "-" in (l1[-k] or l1[-k-1]):
print("debuggggg")
pass
elif(int(l1[-k]) - int(l1[-k-1])== 1 and int(l1[-k]) - int(l1[-k-2])== 2) :
a= l1[-2]
print(a)
l1.remove(a)
#print("debug 2")
elif(int(l1[-k]) - int(l1[-k-1])== 1):
a= l1[-2]
l1.remove(a)
l1[-2] = l1[-2] +"#"
l1[-1] = l1[-1] +"#"
print("3")
#elif(type(l1[-2]) is str):
#pass
问题在于:
debuggggg
14
13
12
11
10
9
8
最后两个元素不包含char“-”,但似乎它们包含char“-”。 此外,在8循环脚本崩溃之后:
elif(int(l1[-k]) - int(l1[-k-1])== 1 and int(l1[-k]) - int(l1[-k-2])== 2) :
IndexError: list index out of range
但它并没有超出清单的范围。有什么问题?你知道吗
您应该有一个迭代的源列表和一个插入元素的结果列表。你知道吗
如果有其他的要求,那么让我知道,我会尝试调整我的例子。你知道吗
你的第二个问题
but it is not out the range of the list. What is the problem?
这只是超出范围的错误。你知道吗
引发此错误。您正在代码中执行此操作。你知道吗
您正在从列表中删除项。如果从包含10个项目的
l1
开始,那么k将从0变为9,但是如果从l1
中删除一个项目,那么l1[9]
就不再存在。你知道吗我还认为
if "-" in (l1[-k] or l1[-k-1]):
是在测试"-"
是否在l1[-k]
和l1[-k-1]
的逻辑或中,我认为这不是你想要的?你知道吗相关问题 更多 >
编程相关推荐