当前位置:  开发笔记 > 编程语言 > 正文

Python:我可以有一个带有命名索引的列表吗?

如何解决《Python:我可以有一个带有命名索引的列表吗?》经验,为你挑选了5个好方法。

在PHP中我可以命名我的数组标记,以便我可能有类似的东西:

$shows = Array(0 => Array('id' => 1, 'name' => 'Sesame Street'), 
               1 => Array('id' => 2, 'name' => 'Dora The Explorer'));

这在Python中可行吗?



1> 小智..:

这听起来像使用命名索引的PHP数组非常类似于python dict:

shows = [
  {"id": 1, "name": "Sesaeme Street"},
  {"id": 2, "name": "Dora The Explorer"},
]

有关详细信息,请参阅http://docs.python.org/tutorial/datastructures.html#dictionaries.


有点太复杂了.我认为这张海报需要说明
这实际上是一个词典列表.

2> Deestan..:

PHP数组实际上是映射,相当于Python中的dicts.

因此,这是Python的等价物:

showlist = [{'id':1, 'name':'Sesaeme Street'}, {'id':2, 'name':'Dora the Explorer'}]

排序示例:

from operator import attrgetter

showlist.sort(key=attrgetter('id'))

但!通过您提供的示例,更简单的数据结构会更好:

shows = {1: 'Sesaeme Street', 2:'Dora the Explorer'}



3> Dan Lenski..:

@Unkwntech,

刚才发布的Python 2.6以命名元组的形式提供了你想要的东西.他们允许你这样做:

import collections
person = collections.namedtuple('Person', 'id name age')

me = person(id=1, age=1e15, name='Dan')
you = person(2, 'Somebody', 31.4159)

assert me.age == me[2]   # can access fields by either name or position


命名元组或一般的元组是**不可变**.

4> Steve Klabni..:

为了协助未来的谷歌搜索,这些通常被称为PHP中的关联数组和Python中的字典.



5> Lou Franco..:

是,

a = {"id": 1, "name":"Sesame Street"}

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有