如果列表中的每个元素重复,则返回该元素的索引

2024-04-24 22:38:46 发布

您现在位置:Python中文网/ 问答频道 /正文

如果元素的某个部分重复(所有文本都没有下划线和数字),我需要找到元素的所有索引。 我是Python的新手,因此我使用以下代码:

import re
list = ['Magnet_1' , 'Magnet_2' , 'Magnet_3']
list2 = []
for i in range(len(list)):
  list2.append(str(re.sub('[^a-z,A-Z]','', list[i])))

indexList = []
for i in range(len(list2)):
    if list2.count(list2[i]) > 1:
        indexList.append(i)

for i in range(len(indexList)):
    print(list[indexList[i]]) 

可以为我提供更优雅的程序吗?你知道吗


Tags: 代码in文本re元素forlenrange
1条回答
网友
1楼 · 发布于 2024-04-24 22:38:46
import re

list1 = ['Magnet_1' , 'Magnet_2' , 'Magnet_3']    
list2 = list(set([''.join(filter(str.isalpha,s)) for s in list1]))    
print (list2)

============================================================

[''.join(filter(str.isalpha,s)) for s in list1]  > the list without numbers/special characters

list(set()) >removes the duplicate characters 

我希望这一行有帮助!将list修改为list1,这样python就不会混淆:)

相关问题 更多 >