如何在python中的多元组列表中搜索唯一元组
如果我有如何在python中的多元组列表中搜索唯一元组,python,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")] 提供与a相同的元组列表 编辑: 由于没有一个解决方案对我有效,我给出了实际问题: 我有一个包含四个句子的文本文件,比如: 这是utf-8线路1 这是一号线 这是utf 2
a = [("1","2"),("5","6")] [("3","4"), ("5","6")] [("5","7"), ("2","3")]
如何搜索元组列表以获得有序的唯一元组列表,例如:
B = [("1","2"),("5","6"), ("3","4"), ("5","7"), ("2","3")]
提供与a相同的元组列表 编辑: 由于没有一个解决方案对我有效,我给出了实际问题: 我有一个包含四个句子的文本文件,比如:
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')]
正如@jornsharpe在评论中所写的,这不是一个有效的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')]
这将为您提供唯一的元组
假设您输入的数据采用这种格式(因为您发布的代码已损坏): 首先展平列表,然后执行之前所做的操作:
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)
它们是包含元组的列表列表。。。我想生成一个
唯一元组列表
使用集合的解决方案。计数器对象:
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')]
什么是
a
?这是一个元组列表吗?您现在拥有的内容没有意义。是否应将(“5”、“6”)
和(“6”、“5”)
视为重复项?这是无效的Python,并且不会迭代子列表。@chepner它们是包含元组的列表列表。。考虑我在一个文件中有四个句子,我做了条带和列表(zip(行)),我得到两个元组列表。我想生成一个唯一的列表tuple@jonrsharpe我正在编辑文件中的行,并逐行读取它,并将其保存在变量中,当我这样做时:print(myvar)[('བུམོ', 'bhum'),('གསང', '圣',('བ', 'wa'),('ཀུན', '"",གྱི', 'ghi'),('ཡོན', 'yOn'),('ཏན', '吨')][('ཡོན', 'yOn'),('ཏན', '吨',('དང', '"",གདུང', '"",ཤིང', '罪',('ཕྱུག', '朱克',('པའི', '"",དྲུང', '"",དྲུང', 'DhuN’)]type(myvar)它们并不是真正的列表,因为当我打印(type(myvar))时,我会得到两个列表:
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')]