python中的唯一排序

2024-06-16 11:50:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python很陌生,我想从文件.txt 我有一些这样的数据。。。在

Tempranillo     Rioja_%28wine%29%23Wine_regions
Gr%C3%BCner_Veltliner       Czech_Republic_%28wine%29
Marsanne        California_%28wine%29
Carm%C3%A9n%C3%A8re     Wines_of_Chile
Carm%C3%A9n%C3%A8re     Washington_%28U.S._state%29
Gr%C3%BCner_Veltliner       Czech_Republic_%28wine%29

因此,我尝试使用以下代码:

^{pr2}$

如何继续。我需要以以下格式获取(dom rang)的唯一同时出现:

Tempranillo     Rioja (wine) Wine regions
Marsanne        California (wine)

任何形式的帮助都将是巨大的谢谢。谢谢! 在


Tags: 数据txtregionswineczechcalifornia陌生republic
3条回答

我建议使用urllib2——函数式风格适合于如下字符串处理:

import urllib2

def process_item(x):
    return urllib2.unquote(x).replace('_', ' ')

def process_line(line):
    return tuple(process_item(i) for i in line.split())

with open('t.txt', 'r') as infile:
    unique_wines = set(process_line(l) for l in infile)

for dom, rang in sorted(unique_wines):
    print dom, ':', rang

好吧,如果我没听错的话:

在打开文件之前,请将以下内容放入:

 wines = {}

把这个放在循环的最后几行:

^{pr2}$

把这个放在循环之后:

^{3}$

作为注释


另一张海报建议:

with open("file.txt") as f:
    unique_lines = set(f)

如果任何行上没有多余的空格,这是最好的解决方案。请先试试他的建议。在

要从文件中筛选出重复行,请执行以下操作:

with open("file.txt") as f:
    unique_lines = set(f)

相关问题 更多 >