निम्नलिखित सबकुछ खिलाड़ी नाम से कुंजीपटल में पढ़ा जाएगा। प्रत्येक खिलाड़ी के साथ जुड़ा हुआ मूल्य स्वयं एक शब्दकोश है जो आगे के प्रसंस्करण के लिए उपयुक्त प्रारूप में परिवर्तित वस्तुओं के साथ नामित फ़ील्ड के साथ रिकॉर्ड के रूप में कार्य करता है।
info = {}
with open('scoring_info.txt') as input_file:
for line in input_file:
player, stats, outcome, date = (
item.strip() for item in line.split('-', 3))
stats = dict(zip(('kills', 'deaths', 'assists'),
map(int, stats.split('/'))))
date = tuple(map(int, date.split('-')))
info[player] = dict(zip(('stats', 'outcome', 'date'),
(stats, outcome, date)))
print('info:')
for player, record in info.items():
print(' player %r:' % player)
for field, value in record.items():
print(' %s: %s' % (field, value))
# sample usage
player = 'Fizz'
print('\n%s had %s kills in the game' % (player, info[player]['stats']['kills']))
आउटपुट:
info:
player 'Shyvana':
date: (2012, 11, 22)
outcome: Loss
stats: {'assists': 5, 'kills': 12, 'deaths': 4}
player 'Miss Fortune':
date: (2012, 11, 22)
outcome: Win
stats: {'assists': 3, 'kills': 12, 'deaths': 4}
player 'Fizz':
date: (2012, 11, 22)
outcome: Win
stats: {'assists': 5, 'kills': 12, 'deaths': 4}
Fizz had 12 kills in the game
वैकल्पिक रूप से, बल्कि शब्दकोशों में डेटा है, जो नेस्टेड मैदान पहुँच थोड़ा अजीब कर सकते हैं का सबसे पकड़ से - info[player]['stats']['kills']
- आप के बजाय एक छोटे से अधिक उन्नत इस्तेमाल कर सकते हैं " सामान्य "वर्ग उन्हें पकड़ने के लिए, जो आपको इसके बजाय info2[player].stats.kills
लिखने देगा।
समझाने के लिए, यहाँ लगभग एक ही बात एक वर्ग मैं Struct
नाम दिया है यह सी भाषा का struct
डेटा प्रकार की तरह कुछ हद तक है, क्योंकि का उपयोग कर रहा है:
class Struct(object):
""" Generic container object """
def __init__(self, **kwds): # keyword args define attribute names and values
self.__dict__.update(**kwds)
info2 = {}
with open('scoring_info.txt') as input_file:
for line in input_file:
player, stats, outcome, date = (
item.strip() for item in line.split('-', 3))
stats = dict(zip(('kills', 'deaths', 'assists'),
map(int, stats.split('/'))))
victory = (outcome.lower() == 'win') # change to boolean T/F
date = dict(zip(('year','month','day'), map(int, date.split('-'))))
info2[player] = Struct(champ_name=player, stats=Struct(**stats),
victory=victory, date=Struct(**date))
print('info2:')
for rec in info2.values():
print(' player %r:' % rec.champ_name)
print(' stats: kills=%s, deaths=%s, assists=%s' % (
rec.stats.kills, rec.stats.deaths, rec.stats.assists))
print(' victorious: %s' % rec.victory)
print(' date: %d-%02d-%02d' % (rec.date.year, rec.date.month, rec.date.day))
# sample usage
player = 'Fizz'
print('\n%s had %s kills in the game' % (player, info2[player].stats.kills))
आउटपुट:
info2:
player 'Shyvana':
stats: kills=12, deaths=4, assists=5
victorious: False
date: 2012-11-22
player 'Miss Fortune':
stats: kills=12, deaths=4, assists=3
victorious: True
date: 2012-11-22
player 'Fizz':
stats: kills=12, deaths=4, assists=5
victorious: True
date: 2012-11-22
Fizz had 12 kills in the game
आप इसे पढ़ते हैं पीछे, आप किस डेटा संरचना को स्टोर करना चाहते हैं? – inspectorG4dget
ओह अच्छाई आप सबको बहुत धन्यवाद, आखिर में इस विभाजन के कुछ समझ में आता है! मैं इनमें से कुछ को आज़मा दूंगा और देख सकता हूं कि मेरे लिए सबसे अच्छा क्या काम करता है, धन्यवाद! और धन्यवाद धन्यवाद! – Kassandra