您可以創建一個遞歸列表或字典來實現它,我寧願字典,你可以如命名變量
mydata = [
{
'name': 'Windows',
'value': '12%',
'members': [
{
'name': 'pc1',
'value': 123,
'members': []
},
{
'name': 'pc2',
'value': 321,
'members': []
},
]
},
{
'name': 'Linux',
'value': '11%',
'members': [
{
'name': 'pc3',
'value': 213,
'members': []
},
{
'name': 'pc4',
'value': 132,
'members': []
},
]
},
]
現在,如果你知道你的數據結構是隻有1級深,你可以重複它像這樣
for topmember in mydata:
print "%s = %s"%(topmember['name'], topmember['value'])
for member in topmember['members']:
print ' MEMBER: %s = %s' % (member['name'], member['value'])
輸出:
Windows = 12%
MEMBER: pc1 = 123
MEMBER: pc2 = 321
Linux = 11%
MEMBER: pc3 = 213
MEMBER: pc4 = 132
但是,如果你不知道它有多深,例如成員可以進一步擁有更多的成員,這些成員擁有更多的成員等等,你可以遞歸地通過它,例如,
def print_recursive(members, indent=''):
for member in members:
print "%s%s = %s"%(indent, member['name'], member['value'])
print_recursive(member['members'], indent + ' ')
print_recursive(mydata)
輸出:
Windows = 12%
pc1 = 123
pc2 = 321
Linux = 11%
pc3 = 213
pc4 = 132
你先生......是一個傳奇。非常感謝! – Thomas
@ user1073606,歡迎您:) –