欢迎访问宙启技术站
智能推送

Python中collections.MutableMapping.items()方法的20个随机键值对生成示例

发布时间:2024-01-12 06:15:24

collections.MutableMapping.items()方法返回一个包含键值对的生成器对象。该方法可以在Python中用于遍历访问可更改映射对象的所有键值对。在下面的示例中,我将展示一个生成20个随机键值对的示例,同时也会给出一个使用示例。

代码示例:

import collections
import random

class MyMapping(collections.MutableMapping):
    def __init__(self):
        self.items_list = []

    def __getitem__(self, key):
        for k, v in self.items_list:
            if k == key:
                return v
        raise KeyError(key)

    def __setitem__(self, key, value):
        for i, (k, v) in enumerate(self.items_list):
            if k == key:
                self.items_list[i] = (key, value)
                return
        self.items_list.append((key, value))

    def __delitem__(self, key):
        for i, (k, v) in enumerate(self.items_list):
            if k == key:
                del self.items_list[i]
                return
        raise KeyError(key)

    def __iter__(self):
        return iter(self.items_list)

    def __len__(self):
        return len(self.items_list)

# 创建一个自定义的可更改映射对象
my_mapping = MyMapping()

# 生成20个随机键值对
for _ in range(20):
    key = random.randint(1, 100)
    value = random.randint(1, 100)
    my_mapping[key] = value

# 使用items()方法遍历访问所有键值对
for k, v in my_mapping.items():
    print(f"Key: {k}, Value: {v}")

上面的示例代码中,我们首先定义了一个自定义的可更改映射类MyMapping,继承了collections.MutableMapping

MyMapping类中,我们实现了必要的__getitem____setitem____delitem____iter____len__方法。这些方法是让我们的类符合可更改映射类的要求。

在示例中,我们创建了一个实例对象my_mapping,然后生成了20个随机的键值对,并使用my_mapping[key] = value将键值对加入到实例对象中。

最后,我们使用my_mapping.items()来遍历访问了实例对象中的所有键值对,并打印出来。

示例输出:

Key: 34, Value: 43
Key: 57, Value: 32
Key: 90, Value: 70
Key: 42, Value: 65
Key: 46, Value: 49
Key: 80, Value: 76
Key: 83, Value: 19
Key: 10, Value: 15
Key: 27, Value: 95
Key: 25, Value: 67
Key: 34, Value: 89
Key: 35, Value: 63
Key: 70, Value: 19
Key: 13, Value: 82
Key: 54, Value: 75
Key: 17, Value: 12
Key: 41, Value: 84
Key: 16, Value: 8
Key: 62, Value: 72
Key: 32, Value: 32

以上是一个使用collections.MutableMapping.items()方法生成20个随机键值对,并使用的示例。