如果不存在,如何创建列表,如果不存在,如何添加到列表 - python

假设我有一本字典,看起来像这样:

mappings = {"some_key": 3}

或可能看起来像这样:

mappings = {"some_key": [4,5,6]}

假设我在此函数中有一个值100和一个“some_key”键:

def add_to_mappings(key, value):
    if key in mappings:
        mappings[key] = ?

我想添加到列表(如果存在),或者创建一个(如果不存在)。最后,我希望映射如下所示:

   mappings = {"some_key": [3, 100]}

要么

   mappings = {"some_key": [4,5,6,100]}

参考方案

没有defaultdict:

mappings = dict()

def add_to_mappings(key, value):
  try:
    mappings[key].append(100)
  except KeyError:
    mappings[key] = [100]

defaultdict:

from collections import defaultdict

mappings = defaultdict(list)

def add_to_mappings(key, value):
  mappings[key].append(value)

编辑:我误解了原来的要求,如果一个项目已经存在,则将其拿走,并根据它和新项目创建一个列表,那么第一个示例可以更改为:

mappings = dict(foo=3)

def add_to_mappings(key, value):
  try:
    mappings[key].append(100)
  except KeyError:
    mappings[key] = [100]
  except AttributeError:
    mappings[key] = [mappings[key], value]

add_to_mappings("foo", 5)
# mappings ==> { "foo": [3, 5] }

Python uuid4,如何限制唯一字符的长度 - python

在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python-如何检查Redis服务器是否可用 - python

我正在开发用于访问Redis Server的Python服务(类)。我想知道如何检查Redis Server是否正在运行。而且如果某种原因我无法连接到它。这是我的代码的一部分import redis rs = redis.Redis("localhost") print rs 它打印以下内容<redis.client.Redis o…

Python:图像处理可产生皱纹纸效果 - python

也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…

Python-crontab模块 - python

我正在尝试在Linux OS(CentOS 7)上使用Python-crontab模块我的配置文件如下:{ "ossConfigurationData": { "work1": [ { "cronInterval": "0 0 0 1 1 ?", "attribute&…