【问题标题】:storing different rows of two lists in new list在新列表中存储两个列表的不同行
【发布时间】:2021-07-07 06:31:51
【问题描述】:

我试图通过比较两个列表来创建一个新对象。如果行匹配,则应从拆分的 row_list 中删除该行,或将其附加到仅包含两个列表之间差异的新列表中。 示例数据:基本上数据的结构方式是 splitted_row_list 具有 all_rows 的所有行,但包含不同的附加行(顺便说一句,这也意味着两个列表之间的行数不相等)。我很想将这些额外的行放入一个新对象中。

all_rows[0]:'1390', '139080', '13980', '1380', '139080', '13080'
splitted_row_list[0]:'35335','53527','353529','242424','5222','444'


results = []
for row in splitted_row_list:
    print(row)
    for row1 in all_rows:
        if row1 == row:
            
            splitted_row_list.remove(row)
        else:
            results.append(row)





print(results)

但是,此代码仅返回所有行。有人有什么建议吗?

【问题讨论】:

    标签: list compare row


    【解决方案1】:

    这两个列表是不同的,因此您将每个项目都放在一个列表中,因为if row1 == row 永远不会为真,那么您将不会删除任何内容。 没有区别。

    编辑: 你可以简单地

    nonunique = []
    for row in splitted_row_list:
        print(row)
        for row1 in all_rows:
            if row1 == row:
                nonunique.append(splitted_row_list.remove(row))
    
    result = splitted_row_list #the nonunique have been removed
    
    

    如果您想要 all_rows 中的非唯一值,只需添加 all_rows.remove(row)。 对于完整的集合,只需在循环之后将它们连接起来。 all = nonunique +splitted_row_list+all_rows

    【讨论】:

    • 我演示的示例显示了两个不同的行,但是 row1 == row,对于大约 60% 的情况是正确的,它可以正确执行,我通过此处未包含的打印语句注意到这一点。 .
    • 仔细看,这段代码没有多大意义。问题是您为行中的每个项目附加了等于 if 语句的每个结果机器人,这否定了效果,例如: a=[2,3,1] ,b= [4,2 ,3],当你循环 a[1] 时,你会得到预期的结果,因为你追加了与 a[2] 的所有不同,所以 a[1] 将被添加到结果列表中
    【解决方案2】:

    谢谢,我在这个特定的上下文中“解决”了这个问题,方法是附加一个字符串,然后根据它们是否包含字符串进行排序..不是很优雅,但它可以工作..

    def append_mark2(splitted_row_list):
    
    for row in splitted_row_list:
    
        for row1 in all_rows:
            if row1 == row:
    
                row.append('jaja')
                print(row)
    return splitted_row_list
    
    def sort_on_appendix(splitted_row_list_appended_mark):
    next_row_list3=[]
    for row in splitted_row_list_appended_mark:
        if 'jaja' not in row:
            print(row)
            next_row_list3.append(row)
    print('next_row_list3:',next_row_list3)
    return next_row_list3
    

    【讨论】:

      猜你喜欢
      • 2014-06-26
      • 2017-05-06
      • 1970-01-01
      • 2019-05-06
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      相关资源
      最近更新 更多