想要从两个变量创建一个新列表,顺序匹配项目

时间:2013-07-12 16:27:34

标签: python list merge

从这两个清单中:

FCC = ["A3","A4","A5","A3"]

stNm = ["1st", "2nd", "3rd", "2nd"]

我想生成这样的合并列表:

list1 = [("A3, "1st"), ("A4", "2nd"),("A5","3rd"),("A3","2nd")]

我从这开始:

f = ''

n = ''

list1 = [ ]

for f in FCC:

    for n in stNm:

        list1.append((f,n))

print (list1)

但它给了我list1中所有可能的组合。我怎样才能得到我想要的东西?我认为部分问题可能与循环有关,但不确定如何解决。我尝试创建字典但我需要保留重复的密钥。

2 个答案:

答案 0 :(得分:2)

使用zip功能。

zip(FCC,stNm)

答案 1 :(得分:0)

对于第二个问题,您可以获取重复项目列表,如下所示:

duplicated_items = [item for item in stNm if stNm.count(item)>1]

然后你就可以得到它们所属的对:

duplist = [pair for pair in zip(FCC, stNm) if pair[1] in dups]

注意:duplicated_items列表可以像往常一样通过将其设置为set()来单独使用。这似乎不适用于小型列表,可能对大型列表有用。