Python元组问题

时间:2013-07-11 01:28:59

标签: python tuples

我正在学习Python Tuple,感觉有点不知所措。我正在使用的元组大小是我在下面放置的大小的20倍。

{u'0UsShTrY': {u'a': {u'n': u'Backups'}, u'h': u'0UsShTrY', u'k': (16147314, 17885416, 1049370661, 902515467), u'ts': 13734967, u'p': u'5RtyGQwS', u'u': u'xpz_tb-YDUg', u't': 1, 'key': (16147314, 17885516, 10490661, 9015467)}, 
u'oMV32IgB': {u'a': {'n': 'Rubbish Bin'}, u'h': u'oMV32IgB', u'k': u'', u'ts': 13734735, u'p': u'', u'u': u'xpz_tb-YDUg', u't': 4}, 
u'AclTQTAa': {u'a': {u'n': u'Test3'}, u'h': u'AclTQTAa', u'k': (4031580, 13207606, 20877418,89356117), u'ts': 1373476935, u'p': u'4FlnwBTb', u'u': u'xpz_tb-YDUg', u't': 1, 'key': (4032580, 13208406, 20627418, 4893117)}, 
u'kEk0RbKR': {u'a': {u'n': u'Abandon All Ships - 5 - Stange Love.mp3'}, u'h': u'kEk0RbKR', u'k': (4714448, 440504, 14565743L, 7910538L), u'ts': 13737027, 'iv': (4284718, 20627111, 0, 0), u'p': u'wQkyFS6S', u's': 1731926, 'meta_mac': (3010404L, 2624700L), u'u': u'xpz_tb-YDUg', u't': 0, 'key': (94654, 201535, 385311L, 301074L, 42818, 204311, 3010404L, 269100L)}}

现在,我的问题是,我正在尝试访问位于您所看到的位置“Test3”“Abandon All Ships - 5 - Stange Love.mp3”的数据< / em>,以及例如你在第一行看到“u'p':u'5RtyGQwS',”的地方。如果不预先定义元组中出现的任何信息,我将如何访问这些?

任何帮助都表示赞赏。感谢。

3 个答案:

答案 0 :(得分:0)

您可以通过理解来提取一些数据,例如:

[d[k]['a']['n'] for k in d]
# => [u'Backups', 'Rubbish Bin', u'Test3', u'Abandon All Ships - 5 - Stange Love.mp3']

(假设你在d)中有你的词典(并且它是一个dict,如Dan和David所说,而不是元组)。

答案 1 :(得分:0)

你所展示的实际上并不是一个元组,而是一个由键/值对组成的字典,其中一些值本身就是带有键/值对的字典,其中一些包含元组。

如果这个Dict被称为MusicDict,你可以像这样访问你需要的信息:

要访问第一行信息:

MusicDict['0UsShTrY']['p']

这将返回'5RtyGQwS'

访问所有船舶:

MusicDict['kEk0RbKR'][['a']['n']

这将返回“Abandon All Ships”

我不确定这是您数据最有用的结构,但它看起来有点混乱。

答案 2 :(得分:0)

您的数据存储在嵌套dictionaries中,而不是tuples。在字典中,您可以使用其键直接访问值(例如d ['key'])。在元组的情况下,你只能通过索引访问一个元素(例如t [2]将访问元组t中的第三个元素。)

要从数据中访问值“Test3”,您可以通过

进行操作
data['AclTQTAa']['a']['n']