能否请您分享以下代码的说明。由于我自己无法理解这些代码。我想这是列的定义函数,但不确定。
def remove_common_text(lst):
if len(lst) > 4:
for itm in lst:
if len(itm)>1:
rep = True
while rep == True:
ctr = 0
ctr2 = 0
for itm2 in lst:
if len(itm2)>0:
if itm[0] == itm2[0]:
ctr = ctr + 1
if itm[-1] == itm2[-1]:
ctr2 = ctr2 + 1
if ctr > 4:
str = itm[0]
for itm2 in lst:
if len(itm2)>0:
if itm2[0] == str and len(itm2)>1:
del itm2[0]
if ctr2 > 4:
str2 = itm[-1]
for itm2 in lst:
if len(itm2)>0:
if itm2[-1] == str2 and len(itm2)>1:
del itm2[-1]
if (ctr <= 4 and ctr2 <= 4) or len(itm)<=1: rep = False
id_unique = documents['ID'].unique()
print(id_unique)
for id in id_unique:
remove_common_text(documents[documents.ID==id]['split_clean'])
print(id)
答案 0 :(得分:0)
我将写remove_common_text(lst)
的内容。下面的东西是熊猫,所以也许其他人可以比我更好地回答。
参数lst应该是这样的:[['a','b','c','d','e'],['a','b','1','d','e'],['a','b','2','d','e'],['a','b','3','d','e'],['a','b','4','d','e'], ['a','b','c','d','-1']]
。
您的python代码段分为3部分:
ctr
和ctr2
,从每个“项目”的开头和结尾开始。请记住这一大胆的部分,因为这是这里的专有内容。专有部分::它从头到尾进行检查,因此是否要向其抛出“ abcde”和“ a1bcd2e”。即使“ bcd”元素是常见的,它也会在1和2处停止检查。
如果您想知道上述情况,它会给出[['c'], ['1'], ['2'], ['3'], ['4'], ['c', 'd', '-1']]
还有一个测试用例:
I / O:[['a','b','c','d','e'],['a','b','1','d','e','j'],['a','b','2','d','e'],['a','b','3','d','e'],['a','b','4','d','e'], ['a','b','c','d','e']]
O / P:[['c'], ['1', 'd', 'e', 'j'], ['2'], ['3'], ['4'], ['c']]