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
css3
V2EX  ›  Python

for 循环生成一个 dict, value 是嵌套 list 时,如何 append?

  •  
  •   css3 · 2020-08-27 20:08:37 +08:00 · 1730 次点击
    这是一个创建于 1551 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想要生成这么个结构:

    ret = {"a": [[1], [2], [3]]}
    

    用的关键字 setdefault:

    ret.setdefault(k, []).append(v)
    # 这样生成的结果总是 ret = {"a": [1,2,3]} 如何才能生成上面的类型呢
    
    12 条回复    2020-09-06 10:32:12 +08:00
    funcookies
        1
    funcookies  
       2020-08-27 20:30:28 +08:00
    ret.setdefault(k, []).append([v]) 这样吗?
    css3
        2
    css3  
    OP
       2020-08-27 20:35:00 +08:00
    @funcookies 不太行,我的期望的结构写错了😂
    纠正一下预期的结构:

    ret = {"a": [[1,2],3]}
    ss098
        3
    ss098  
       2020-08-27 20:35:21 +08:00
    >>> ret = {"a": [[1], [2], [3]]}
    >>> ret["a"].append([4])
    >>> ret
    {'a': [[1], [2], [3], [4]]}
    ss098
        4
    ss098  
       2020-08-27 20:36:54 +08:00
    补充之后现有代码和需求更看不懂了,建议重新描述 ...
    funcookies
        5
    funcookies  
       2020-08-27 20:37:51 +08:00
    @css3 这有啥规律吗 再加一个是和 3 组成列表吗,还是怎么样
    css3
        6
    css3  
    OP
       2020-08-27 21:14:06 +08:00 via iPhone
    解决了,感谢老哥们,上下文太长,我也没表述清楚😂😂
    TimePPT
        7
    TimePPT  
       2020-08-27 21:19:04 +08:00 via Android
    @css3 建议有问题自己先试试,一天发几个帖子感觉你一直在纠结字典问题。这样问效率低自己理解也不充分,实在搞不定也查不到资料了再集中来发帖求助。帖子把上下文说清楚大家帮你也效率高一些。
    css3
        8
    css3  
    OP
       2020-08-27 22:55:43 +08:00
    @TimePPT 收到了老哥,这两天集中处理数据,确实问了好多😥,菜鸟一个,有时候确实搞不定,实在不没办法才上来求助
    no1xsyzy
        9
    no1xsyzy  
       2020-08-28 13:42:20 +08:00
    胶水语言,手撕就行了
    别整那些 OO 奇技淫巧。
    biglazycat
        10
    biglazycat  
       2020-08-30 13:50:07 +08:00
    怎么搞定的?俺也想学学。
    css3
        11
    css3  
    OP
       2020-09-01 11:56:28 +08:00 via iPhone
    @biglazycat
    ret.setdefault(k, [[]]).append(v)
    biglazycat
        12
    biglazycat  
       2020-09-06 10:32:12 +08:00
    厉害
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4085 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:18 · PVG 13:18 · LAX 21:18 · JFK 00:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.