[英]How to search unique tuples in multiple list of tuples in python
如果我有
a = [("1","2"),("5","6")] [("3","4"), ("5","6")] [("5","7"), ("2","3")]
如何搜索元組列表以獲得有序的唯一元組列表說:
B = [("1","2"),("5","6"), ("3","4"), ("5","7"), ("2","3")]
Unique = []
for tuple in a:
If tuple not in Unique:
Unique.append (tuple)
給出與 a 相同的元組列表。
編輯:
由於沒有一個解決方案對我有用,我給出了實際問題:
我有一個包含四個句子的文本文件,例如:
我將第 1 行和第 3 行提取到變量 (utfvar),將第 2 行和第 4 行提取到 (engvar)。 然后創建元組:
UtfEng = list (zip (utfvar,engvar))
打印UtfEng
是:
[('This','This'), ('is','is')...('line','line'),('1','1')]
[('This','This'), ('is','is')...('line','line'),('2','2')]
我想從中提取獨特的元組:
[('This','This'), ('is','is')...('line','line'),('1','1'),('2','2')]
正如@jonrsharpe 在評論中所寫,這不是一個有效的 python。
但是假設您有三個列表。
>>> a = [("1","2"),("5","6")] ;b= [("3","4"), ("5","6")];c= [("5","7"), ("2","3")]
合並那些,
>>> a+b+c
會給你,
[('1', '2'), ('5', '6'), ('3', '4'), ('5', '6'), ('5', '7'), ('2', '3')]
那么你就可以
>>> list(set(a+b+c))
[('2', '3'), ('1', '2'), ('5', '7'), ('5', '6'), ('3', '4')]
這會給你獨特的元組。
假設您輸入數據的這種格式(因為您發布的代碼被破壞):
a = [[("1","2"),("5","6")], [("3","4"), ("5","6")], [("5","7"), ("2","3")]]
先將列表展平,然后做你之前做的:
flattened_list = [item for sublist in a for item in sublist]
Unique = []
for pair in flattened_list:
if pair not in Unique:
Unique.append(pair)
print(Unique)
它們是包含元組的列表列表...我想生成一個唯一元組列表
使用collections.Counter
對象的解決方案:
import collections
a = [[("1","2"),("5","6")], [("3","4"), ("5","6")], [("5","7"), ("2","3")]]
c = collections.Counter([t for l in a for t in l])
unique_tuples = [t for t in c.keys()]
print(unique_tuples)
輸出:
[('3', '4'), ('5', '7'), ('1', '2'), ('2', '3'), ('5', '6')]
https://docs.python.org/3.1/library/collections.html#collections.Counter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.