0

从这两个列表中:

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 中所有可能的组合。我怎样才能得到我想要的?我认为部分问题可能与循环有关,但不确定如何解决。我尝试创建字典,但我需要保留重复的键。

4

2 回答 2

2

使用 zip 功能。

邮编 (FCC, stNm)

于 2013-07-12T16:29:40.723 回答
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() 来唯一化。这对于小型列表似乎没有必要,对于大型列表可能很有用。

于 2013-07-12T19:14:33.280 回答