我有一个值列表,其中可能有也可能没有特定的元素循环。 我已经编写了下面的代码来提取列表中重复的索引和值的长度。我的问题是,我现在有多个重复的索引和值的长度。如何从主列表中删除这些元素以删除这些循环
data = [1,2,3,1,2,3,4,5,6,7,4,5,6,7,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,23,18]
minrun = 1
lendata = len(data)
for runlen in range(minrun, lendata // 2):
i = 0
while i < lendata - runlen * 2:
# print("i",i)
# print("runlen", runlen)
# print(lendata - runlen * 2)
s1 = data[i:i + runlen]
# print("s1",s1)
s2 = data[i + runlen:i + runlen * 2]
# print("s2",s2)
if s1 == s2:
print(i, runlen, s1)
i += runlen
else:
i += 1
有更好的方法吗
这可以工作,但我没有测试其他序列,我只测试了你的例子
输出:
说明:
基本上是这样的意思,例如
j=3
:对于每个
True
,追加(j+k)
>;如果不是重复的话。我建议在这里和那里尝试打印以了解更多信息,例如:您的输出将是:
我个人认为打印声明有助于我更好地理解
相关问题 更多 >
编程相关推荐