我将有关电话的数据加载到名为'记录的名单元素列表中。每个电话都有变量' call_duration'中有关通话时长的信息。但是,有些变量设置为None。我想在所有记录中用零替换None,但以下代码似乎不起作用:
for r in records:
if r.call_duration is None:
r = r._replace(call_duration=0)
如何替换列表中的值?我想问题是新的' r'没有存储在列表中。捕获列表中的更改的最佳方法是什么?
答案 0 :(得分:2)
您可以使用records
列表中的索引替换旧记录。您可以使用enumerate()
获取该索引:
for i, rec in enumerate(records):
if rec.call_duration is None:
records[i] = rec._replace(call_duration=0)
答案 1 :(得分:0)
我建议你创建自己的课程,就对象管理而言,它将来会对你有所帮助。如果您想稍后为记录创建方法,您将能够在类中轻松完成:
class Record:
def __init__(self, number = None, length = None):
self.number = number
self.length = length
def replace(self, **kwargs):
self.__dict__.update(kwargs)
现在,您可以根据需要轻松管理记录并替换对象属性。
for r in records:
if r.length is None:
r.replace(length = 0)