相关疑难解决方法(0)

如何复制字典并仅编辑副本

有人可以向我解释一下吗?这对我没有任何意义.

我将字典复制到另一个字典中并编辑第二个字典,然后更改两个字典 为什么会这样?

>>> dict1 = {"key1": "value1", "key2": "value2"}
>>> dict2 = dict1
>>> dict2
{'key2': 'value2', 'key1': 'value1'}
>>> dict2["key2"] = "WHY?!"
>>> dict1
{'key2': 'WHY?!', 'key1': 'value1'}
Run Code Online (Sandbox Code Playgroud)

python dictionary reference python-3.x

737
推荐指数
15
解决办法
52万
查看次数

检查项目是否在数组/列表中

如果我有一个字符串数组,我可以检查一个字符串是否在数组中而不进行for循环?具体来说,我正在寻找一种方法在一个if语句中这样做,所以像这样:

if [check that item is in array]:
Run Code Online (Sandbox Code Playgroud)

python arrays contains

181
推荐指数
3
解决办法
38万
查看次数

Python字典中的线程安全

我有一个持有字典的班级

class OrderBook:
    orders = {'Restaurant1': None,
              'Restaurant2': None,
              'Restaurant3': None,
              'Restaurant4': None}

    @staticmethod
    def addOrder(restaurant_name, orders):
        OrderBook.orders[restaurant_name] = orders
Run Code Online (Sandbox Code Playgroud)

我正在运行调用该方法的4个线程(每个餐厅一个)OrderBook.addOrder.这是每个线程运行的函数:

def addOrders(restaurant_name):

    #creates orders
    ...

    OrderBook.addOrder(restaurant_name, orders)
Run Code Online (Sandbox Code Playgroud)

这是安全的,还是我必须在打电话前使用锁addOrder

python multithreading dictionary thread-safety

92
推荐指数
3
解决办法
6万
查看次数

Python字典deepcopy

我想知道在以下背景下,深度复制是如何工作的:

from copy import deepcopy

def copyExample:
    self.myDict = {}
    firstPosition = "First"
    firstPositionContent = ["first", "primero"]
    secondPosition = "Second"
    secondPositionContent = ["second"]
    self.myDict[firstPosition] = firstPositionContent 
    self.myDict[secondPosition] = secondPositionContent
    return deepcopy(self.myDict)

def addExample(self):
    copy =  self.copyExample()
    copy["Second"].add("segundo")
Run Code Online (Sandbox Code Playgroud)

它是否返回对字典中列表的引用?或者它是否按预期工作并复制具有不同引用的新列表中的每个列表?

我知道什么是深层复制(所以没有必要解释深层和浅层之间的区别),但我想知道它是否像我期望的那样工作,因此在我使用时不会更改实例变量addExample().

python dictionary deep-copy

20
推荐指数
1
解决办法
3万
查看次数

当我将一个字典分配给另一个变量时,为什么 Python 会更新这两个字典?

使用词典时如何避免以下情况

a={'b':1}
c=a
c.update({'b':2})
print a # {'b':2}
print c # {'b':2}
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
3742
查看次数

创建嵌套字典的副本而不是引用

为什么使用该dict()函数不会像标准键:值对字典那样创建带有嵌套字典的副本?

字典

A = {'key' : 'value'}
B = dict(A)
A['key'] = 10
print A, B
Run Code Online (Sandbox Code Playgroud)

输出:

{'key': 10} {'key': 'value'}
Run Code Online (Sandbox Code Playgroud)

嵌套字典:

A = {'key' : {'subkey' : 'value'}}
B = dict(A)
A['key']['subkey'] = 10
print A, B
Run Code Online (Sandbox Code Playgroud)

输出:

{'key': {'subkey': 10}} {'key': {'subkey': 10}}
Run Code Online (Sandbox Code Playgroud)

python dictionary python-2.7

2
推荐指数
1
解决办法
3278
查看次数