我有一个这样的列表:
['University', 'Cambridge', 'Lesley University', 'Lesley',
'Office of Information Technology',
'Office', 'of', 'Information', 'Technology', 'MA',
'United States', 'United', 'States', 'Lesley University ', ' University',
'Lesley University Cambridge']
因此,我只想打印最独特的超集,因此输出看起来像:-
['Office of Information Technology', 'MA',
'United States',
'Lesley University Cambridge']
=====================我尝试的内容======================= ============
tok= ['University', 'Cambridge', 'Lesley University', 'Lesley',
'Office of Information Technology',
'Office', 'of', 'Information', 'Technology', 'MA',
'United States', 'United', 'States', 'Lesley University ', ' University',
'Lesley University Cambridge']
dic={}
for i in [x.lower() for x in tok]:
dic[i]=1
dic
{'大学':1,'剑桥':1,'莱斯利大学':1,'办公室 信息技术'':1,'ma':1,'美国':1,'莱斯利 大学':1,'大学':1,'莱斯利大学剑桥':1, 'lesley':1}
sup_=sorted(jt.keys(), key=len)
se_={}
for i in sup_:
ctr=0
status=True
for k in sup_:
if i in k.split():
ctr+=1
status=status and (i in k.split())
if status==True:
#se[i]=1
#print (ctr)
if ctr==0:
se_[i]=1
se_
{'美国':1,'莱斯利大学':1,'莱斯利大学 剑桥”:1,“信息技术办公室”:1}
答案 0 :(得分:1)
该代码如何:
import re
test = ['University', 'Cambridge', 'Lesley University', 'Lesley', 'Office of Information Technology', 'Office', 'of', 'Information', 'Technology', 'MA', 'United States', 'United', 'States', 'Lesley University ', ' University', 'Lesley University Cambridge']
result = []
for i in range(len(test)):
str_init = test[i].strip()
flag_add = True
for j in range(len(test)):
# exclude variable same index
if(i!=j):
str_include = " "+test[j]+" "
pattern = r"\s{0}\s".format(str_init)
if(re.search(pattern,str_include,re.IGNORECASE)):
flag_add = False
if(flag_add):
result.append(str_init)
print(result)
输出:
['Office of Information Technology', 'MA', 'United States', 'Lesley University Cambridge']
答案 1 :(得分:1)
您可以这样处理数据:
def is_substr(str,l):
for s in l:
if s.lower().strip() != str.lower().strip():
if str.lower().strip() in s.lower().strip():
return True
return False
input = ['University', 'Cambridge', 'Lesley University', 'Lesley', 'Office of Information Technology', 'Office', 'of', 'Information', 'Technology', 'MA', 'United States', 'United', 'States', 'Lesley University', 'University', 'Lesley University Cambridge']
sentences = []
for i in input:
if not is_substr(i,input):
sentences.append(i)
print sentences
运行此命令将产生输出:
['Office of Information Technology', 'MA', 'United States', 'Lesley University Cambridge']
答案 2 :(得分:1)
很难知道这是否是您所需要的,但是此功能应该为您提供列表中唯一的单词
def unique_universities(text):
low = []
for x in text:
x.replace(' ', '')
low.append(x.lower())
return set(low)
您正在寻找什么?