查找两个列表中的重复元素,并在保持顺序的同时在文本文件中标记它们

时间:2015-12-10 19:07:30

标签: python

我有两个列表:list2intersection_set

intersection_set是一个排序列表。

现在,我尝试使用list3list2中标记的公共项目创建intersection_set. list3中的序列必须与list2中的序列相同。 这是我的一段代码:

for item in intersection_set:
    for tmp in list2:
        if tmp == item:
            list3 += " [", tmp, "] "                #mark with []
        else:
            list3 += " ", str(tmp).zfill(4), " "    #fill to zeros

但是有一个问题。 List3有循环编号。

我意识到我的思维方式可能是错误的。

  1. 如何修复此代码?

  2. 是否有其他方法可以在文本文件中标记数字? (简单文本文件中的一些'字符背景 - 这可能吗?例如黑色背景上的白色数字?)

2 个答案:

答案 0 :(得分:0)

关于1),您应该能够通过intersection_set省略循环(导致重复)并使用in operator

for tmp in list2:
    if tmp in intersection_set:
        list3 += " [", tmp, "] "                #mark with []
    else:
        list3 += " ", str(tmp).zfill(4), " "    #fill to zeros

对于2),如果你想强调数字,

  • 您可以使用您喜欢的任何字符组合(例如[)。
  • 如果您使用UTF-8,则可以组合字符f.ex.下划线和数字显示在同一空格中,例如:aCOMBINING LOW LINE
  • 只需遵循Markdown惯例,使用*进行强调,/进行斜体

答案 1 :(得分:0)

让我们看看我是否理解你的问题。 您希望list3成为intersection_set中存在的列表2中的项列表。 如果是这样的话:

list3 = [" ["+item+"] " if item in intersection_set else " "+str(item).zfill(4)+ " " for item in list2]

Tha会将列表3列为字符串列表,这是你想要的吗?