V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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
huangmiao233
V2EX  ›  Python

如何把对象的属性按特定列表排列呢?

  •  
  •   huangmiao233 · Sep 13, 2018 via Android · 2924 views
    This topic created in 2786 days ago, the information mentioned may be changed or developed.
    我有一个列表。里头存的是对象,如何对这个列表的对象属性按照我指定的列表进行排序

    list1=[object1, object2,object3]

    其中 object1.name ='a', object2.name='b', object3.name='c'

    list2 =['c','a','b']

    那么如何得到 list1= [object3,object1,object2]呢?
    项目中大约这个列表长度大概 300 个对象。新手上路,多多指教。环境是 python3.7
    6 replies    2018-09-13 11:13:58 +08:00
    Sylv
        1
    Sylv  
       Sep 13, 2018 via iPhone
    list1.sort(key=lamba x: list2.index(x.name))
    xxx749
        2
    xxx749  
       Sep 13, 2018 via Android
    食谱第一章
    lraining
        3
    lraining  
       Sep 13, 2018 via Android
    @xxx749 食谱是什么?哪本书吗?
    huangmiao233
        4
    huangmiao233  
    OP
       Sep 13, 2018 via Android
    @Sylv 感谢大佬啊。😃
    xxx749
        5
    xxx749  
       Sep 13, 2018 via Android
    @lraining python cookbook
    xpresslink
        6
    xpresslink  
       Sep 13, 2018
    from operator import attrgetter

    class MyObject(object):
    □□□□def __init__(self, name): self.name = name
    □□□□def __repr__(self): return self.name

    list1 = []

    for i in range(5):
    □□□□list1.append(MyObject('object'+str(i)))

    print(sorted(list1, key=attrgetter('name'), reverse=True))

    # [object4, object3, object2, object1, object0]
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4283 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 04:06 · PVG 12:06 · LAX 21:06 · JFK 00:06
    ♥ Do have faith in what you're doing.