是否有上述代码的解释?

时间:2020-06-23 13:39:38

标签: python-3.x pandas

能否请您分享以下代码的说明。由于我自己无法理解这些代码。我想这是列的定义函数,但不确定。

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)

1 个答案:

答案 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部分:

  1. 它计算每个“项目”中相似元素的数量,并将其记录为计数器变量ctrctr2从每个“项目”的开头和结尾开始。请记住这一大胆的部分,因为这是这里的专有内容。
  2. 它删除记录的相似度点击率。
  3. 然后删除记录的相似度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']]