在PHP我可以說出我的陣列indicies,這樣我可以有類似:Python:我可以列出具有指定索引的列表嗎?
$shows = Array(0 => Array('id' => 1, 'name' => 'Sesaeme Street'),
1 => Array('id' => 2, 'name' => 'Dora The Explorer'));
這是可能在Python?
在PHP我可以說出我的陣列indicies,這樣我可以有類似:Python:我可以列出具有指定索引的列表嗎?
$shows = Array(0 => Array('id' => 1, 'name' => 'Sesaeme Street'),
1 => Array('id' => 2, 'name' => 'Dora The Explorer'));
這是可能在Python?
這聽起來像使用名爲指數的PHP數組非常類似Python字典:
shows = [
{"id": 1, "name": "Sesaeme Street"},
{"id": 2, "name": "Dora The Explorer"},
]
更多關於此見http://docs.python.org/tutorial/datastructures.html#dictionaries。
位太複雜。我認爲這個海報需要字跡 – Rory 2008-10-07 15:54:31
這實際上是一個字典列表。 – 2014-06-22 20:46:33
是,
a = {"id": 1, "name":"Sesame Street"}
PHP數組實際上是地圖,它相當於Python中的字典。
因此,這是Python當量:
showlist = [{'id':1, 'name':'Sesaeme Street'}, {'id':2, 'name':'Dora the Explorer'}]
排序例如:
from operator import attrgetter
showlist.sort(key=attrgetter('id'))
BUT!您提供的例子,一個簡單的數據結構會更好:
shows = {1: 'Sesaeme Street', 2:'Dora the Explorer'}
你應該閱讀python tutorial和ESP。關於datastructures的部分也涵蓋了dictionaries.
爲了幫助未來的谷歌搜索,這些通常被稱爲PHP中的關聯數組和Python中的字典。
不完全相同的語法,但是有一些字典擴展,其中有關鍵/值對的添加順序。例如。 seqdict。
@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
當然,這可以模擬老版本的Python(例如:http://users.forthnet.gr/ath/chrisgeorgiou/python/TupleStruct.py) – tzot 2008-10-07 15:53:23
Python有列表和字典作爲2個獨立的數據結構。 PHP混合成一個。在這種情況下你應該使用字典。
我做了這樣的:
def MyStruct(item1=0, item2=0, item3=0):
"""Return a new Position tuple."""
class MyStruct(tuple):
@property
def item1(self):
return self[0]
@property
def item2(self):
return self[1]
@property
def item3(self):
return self[2]
try:
# case where first argument a 3-tuple
return MyStruct(item1)
except:
return MyStruct((item1, item2, item3))
我做到了,也更多一些列表,而不是元組複雜,但我不得不重寫setter方法以及吸氣。
不管怎麼說,這允許:
a = MyStruct(1,2,3)
print a[0]==a.item1
的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。
之前有人評論,是的,這些是我最喜歡的節目2。 :) – UnkwnTech 2008-10-07 12:30:28