V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
qwa2013
V2EX  ›  Python

Python 去重

  •  
  •   qwa2013 · 2020-10-23 01:28:07 +08:00 · 2791 次点击
    这是一个创建于 1479 天前的主题,其中的信息可能已经有所发展或是发生改变。
    数据格式:xxxyyyzzz xyz 为随机值, 匹配 y 重复项,然后删除整列。 求教怎么实现?
    imn1
        1
    imn1  
       2020-10-23 02:45:09 +08:00
    搞不清你的需求
    In [1]: set('aabbcc')
    Out[1]: {'a', 'b', 'c'}
    qwa2013
        2
    qwa2013  
    OP
       2020-10-23 03:36:16 +08:00
    454yyysda
    22sayyy8sdl 》》》 454yyysda
    asdyyyeee

    xz 随机字母数字符合组合。
    qwa2013
        3
    qwa2013  
    OP
       2020-10-23 03:36:40 +08:00
    y 为随机值,非固定。
    liukrystal
        4
    liukrystal  
       2020-10-23 04:15:44 +08:00 via iPhone   ❤️ 2
    LZ 表达能力有问题,没说明白需求
    bilibilifi
        5
    bilibilifi  
       2020-10-23 04:44:06 +08:00 via iPhone
    你用正则取 y,再维护一个字典不就好了
    bilibilifi
        6
    bilibilifi  
       2020-10-23 04:45:57 +08:00 via iPhone
    要去重要么牺牲空间要么牺牲复杂度
    vk42
        7
    vk42  
       2020-10-23 05:02:33 +08:00
    @liukrystal +1,看 lz 原贴和下面补充简直是在猜字谜……
    billgreen1
        8
    billgreen1  
       2020-10-23 07:22:37 +08:00
    楼主举个例子吧:你的输入是什么,期待输出是什么
    v2webdev
        9
    v2webdev  
       2020-10-23 07:43:59 +08:00 via Android   ❤️ 1
    在 Stack Overflow 这种帖子就得被封贴了。
    nealight
        10
    nealight  
       2020-10-23 07:48:11 +08:00 via iPhone   ❤️ 3
    楼主很有 leetcode 出题者潜质
    pcbl
        11
    pcbl  
       2020-10-23 08:13:52 +08:00 via iPhone
    确定是删除整列?
    liukrystal
        12
    liukrystal  
       2020-10-23 08:53:42 +08:00 via iPhone
    @vk42 看 lZ 其他回复,原来是个专科,没有歧视学历的意思,但这确实在某种程度上解释了为什么 LZ 表达能力弱的问题。
    OnlySeePost
        13
    OnlySeePost  
       2020-10-23 09:42:04 +08:00 via Android
    楼主 有时候你表达不清楚的话 你把输入输出列出来
    princelai
        14
    princelai  
       2020-10-23 10:17:23 +08:00
    我觉得我破译了楼主想问的问题,应该是,有一个形似 xxxyyyzzz 的字符串,y 是随机的(没说是数字还是字符还是两者组合),如果遇到 x,z 都是随机字母数字组合,那么删除该行,如果 x,z 都是纯数字或纯字符,那么就保留,但楼主没说如果 x 是纯数字,z 是纯字符,是否要删除。
    crazypig14
        15
    crazypig14  
       2020-10-23 10:33:10 +08:00
    这种问题很多时候能表达清楚就能写出来,写代码本身就是个语言表达
    deplives
        16
    deplives  
       2020-10-23 10:35:14 +08:00 via iPhone
    楼主的每个字我都认识 可是合在一起我不知道啥意思
    liangch
        17
    liangch  
       2020-10-23 10:50:41 +08:00
    表达能力有问题
    qwa2013
        18
    qwa2013  
    OP
       2020-10-23 20:27:12 +08:00
    很抱歉,表达能力不行。

    数据格式:
    [email protected]:Soxxxx483!
    [email protected]:MYxxxx4SE13
    [email protected]:Myrxxxx402
    info@travel-muse.com:travxxxx45
    [email protected]:8Exxxx4nts
    [email protected]:stxxxx4ch!
    [email protected]:fredoxxxx440

    每个域名的邮箱数据只保留第一行,剩下同域名的全删除。
    lithbitren
        19
    lithbitren  
       2020-10-23 23:49:52 +08:00
    res = {}
    for line in lines:
    __res.setdefault(re.search('(?<=@).*?(?=:)', line)[0], line)
    取 res.values()就得了
    biglazycat
        20
    biglazycat  
       2020-10-24 00:33:00 +08:00
    import os
    import re

    domain_dict = {}
    with open('mail.txt', encoding='utf-8') as f:
    for line in f:
    domain = re.split('@|:', line)[1]
    domain_dict.setdefault(domain,[]).append(line)
    for v in domain_dict.values():
    print(v[0])

    写的挺丑的,有更好的,我再回来贴上。
    qwa2013
        21
    qwa2013  
    OP
       2020-10-24 11:02:39 +08:00
    谢谢楼上二位大佬。 已解决。
    biglazycat
        22
    biglazycat  
       2020-10-24 15:57:16 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 07:13 · PVG 15:13 · LAX 23:13 · JFK 02:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.