如何索引到词典列表?

如何索引到词典列表?,第1张

概述新手警报 – 但现在已经花了几个小时在这个,只是无法搞清楚 – 我有这个清单: players = [{'name': 'John', 'points': '27', 'Played': '6'},{'name': 'Emil', 'points': '43', 'Played' : '13'},{'name': 'Susan', 'points': '11', 'Played': '2'}, 新手警报 – 但现在已经花了几个小时在这个,只是无法搞清楚 – 我有这个清单:

players = [{'name': 'John','points': '27','Played': '6'},{'name': 'Emil','points': '43','Played' : '13'},{'name': 'Susan','points': '11','Played': '2'},{'name': 'Peter','points': '4','Played': '3'}]

我想做的是能够说:

players["John"]["score"]=newscoreplayers["john"]["Played"] = players["john"]["Played"]+1

列表表示对象列表,其中名称是主键,然后是每个对象的theres参数.

但是当然不起作用,我能够通过以下方式触摸元素:

print (players[0]["score"])

然后这将打印出Johns得分好,但是通过这种方式,我需要通过所有玩家[x]首先比较一下,如果名字是相同的,然后我可以访问它,它对我来说似乎不是那么Python.

你会怎样以pythonic方式进行此 *** 作?

解决方法 您可以使用可以提供指定的专用更新方法的类来包装当前数据,而不必更改原始数据的整个结构:

class Row:   def __init__(self,row):      self.row = row   def __setitem__(self,_t,_val):      self.row[_t] = str(_val)   def __getitem__(self,_stat):      return int(self.row[_stat])   def __repr__(self):      return '{}({})'.format(self.__class__.__name__,str(self.row))class Players:   def __init__(self,data={}):      self.data = {i['name']:Row(i) for i in data}   def __getitem__(self,name):      return self.data[name]   def __setitem__(self,_name,_data):      self.data[_name] = Row(_data)   def __repr__(self):      return '{}({})'.format(self.__class__.__name__,str(self.data))players = [{'points': '27','name': 'John',{'points': '43','name': 'Emil','Played': '13'},{'points': '11','name': 'Susan',{'points': '4','name': 'Peter','Played': '3'}]d = Players(players)d['John']['points'] = 30d["John"]["Played"] = d["John"]["Played"]+1print(d['John'])d['Bob'] = {'points': '2','Played': '5'}

输出:

Row({'points': '30','Played': '7'})
总结

以上是内存溢出为你收集整理的如何索引词典列表?全部内容,希望文章能够帮你解决如何索引到词典列表?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1194362.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存