|  | 
 
| 
一个列表,我要查找他某个字符串重复出现过几次,把这个字符串找出来,并把他的位置都列出来,有多个重复的分别用字典列出来
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 我的这个就发现了一个问题,这个
 
 
 def qc(lis):
 new_lst = []
 a=0#第一次写入new列表用
 for i in range(len(lst)):
 flag = True#退出用的标记
 for j in range(len(lst)-i-1):#拿剩下的数据来比对
 if lst[i] == lst[j + i + 1]:#有重复的数据的时候
 fin = {"len": [i+1, i + j + 1+1],
 "count": 2,
 "value": lst[i]
 }
 if a == 1:#不是第一次的就下来
 for k in range(len(new_lst)):
 if new_lst[k]['value'] == lst[i]:
 for m in range(len(new_lst[k]['len'])):
 if new_lst[k]['len'][m]==i + j + 1:
 flag = False
 break
 else:
 fin = {"len": new_lst[k]['len']+[i + j + 1],
 "count": new_lst[k]['count'] + 1,
 "value": new_lst[k]['value']
 }
 if not flag:
 break
 del new_lst[k]
 if not flag:
 break
 new_lst.append(fin)
 a = 1
 return (new_lst)
 
 
 if __name__ == "__main__":
 lst = ['1111', '2', '1111', '2', '1111', '1111', '1111', '2', '2', '1111', '999', '999', '999', '1111', '2', '1111', '2', '999']
 print(qc(lst))
 
 
 
 这个的结果居然是[{'len': [1, 3, 4, 5, 6, 9, 13, 15], 'count': 8, 'value': '1111'}, {'len': [2, 4, 7, 8, 14, 16], 'count': 6, 'value': '2'}, {'len': [11, 12, 17], 'count': 3, 'value': '999'}]
 
 
 1111出现的应该么有4这个位置,但他居然列出来了,我就想问问到底是哪里出了问题?
 | 
 |