PHPでは、配列のインデックスに名前を付けて、次のようにすることができます。
$shows = Array(0 => Array('id' => 1, 'name' => 'Sesame Street'),
1 => Array('id' => 2, 'name' => 'Dora The Explorer'));
これはPythonで可能ですか?
これは、PHP名前付きインデックスを使用した配列は、python dictに非常に似ています:
shows = [
{"id": 1, "name": "Sesaeme Street"},
{"id": 2, "name": "Dora The Explorer"},
]
詳細は http://docs.python.org/tutorial/datastructures.html#dictionaries を参照してください。
PHPの配列は実際にはマップであり、Pythonのdictと同等です。
したがって、これは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'}
@Unkwntech、
あなたが欲しいものは、リリースされたばかりのPython 2.6 named tuples の形式で)利用可能です。
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
将来のグーグルを支援するために、これらは通常、PHPでは連想配列、Pythonでは辞書と呼ばれます。
はい、
a = {"id": 1, "name":"Sesame Street"}
pandas
ライブラリには、本当にきちんとしたソリューションがあります:Series
。
book = pandas.Series( ['Introduction to python', 'Someone', 359, 10],
index=['Title', 'Author', 'Number of pages', 'Price'])
print book['Author']
詳細については、そのドキュメントを確認してください: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html 。
python tutorial およびespをお読みください。 datastructures に関するセクション (dictionaries。
まったく同じ構文ではありませんが、キーと値のペアが追加された順序を尊重する辞書拡張機能がいくつかあります。例えば。 seqdict 。
Pythonには2つの別個のデータ構造としてリストとディクテーションがあります。 PHPは両方を1つに混合します。この場合は、dictsを使用する必要があります。