gpt4 book ai didi

python - 变量 who 的引用总是指向 len(dict)

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:34 26 4
gpt4 key购买 nike

cardPayments={}
rowNumber, NumOfCardPayments = 0, len(cardPayments)

for x in range(5):
cardPayments.update({x:x})
print(cardPayments)
print('cardPayments: '+str(NumOfCardPayments)+'\n')

输出:

{0: 0}
cardPayments: 0

{0: 0, 1: 1}
cardPayments: 0

{0: 0, 1: 1, 2: 2}
cardPayments: 0

{0: 0, 1: 1, 2: 2, 3: 3}
cardPayments: 0

{0: 0, 1: 1, 2: 2, 3: 3, 4: 4}
cardPayments: 0

我希望通过引用 NumOfCardPaymentslen(cardPayments)cardPayments dict 的大小增加了 NumOfCardPayments 的 int 值也会增加在 for 循环中,情况似乎并非如此。

如何创建 NumOfCardPayments作为一个变量,作为 len(cardPayments) 的引用进行维护?

(请注意,我不想在 for 循环中简单地执行 NumOfCardPayments+=1)

最佳答案

想到的最接近的东西是一个属性,它在读取时自动评估一个函数:

>>> class LenDict(dict):
... @property
... def len(self):
... return len(self)
...
>>> d=LenDict()
>>> d.len
0
>>> d[1]=2
>>> d.len
1
>>>

但是恕我直言,这并不比直接使用 len(d) 更清晰,当然效率也不高。也可以通过包装 setitem 以相反的方式放置钩子(Hook)。

关于python - 变量 who 的引用总是指向 len(dict),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22840944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com