小编Eug*_*ash的帖子

高效的字典键交叉

比如说,我们有以下词典:

dict1 = {a:b, b:c}
dict2 = {b:c, c:d}
Run Code Online (Sandbox Code Playgroud)

交叉两个词典的键的最有效方法是什么?

当然,人们可以使用set(dict1.keys()).intersection(set(dict2.keys())),但我认为首先将字典转换为集合并不是很有效.

python dictionary python-3.x

0
推荐指数
1
解决办法
121
查看次数

复制一个dict,留下一个(key,val)对

在Python 3中,如何复制字典而只留下一个元素?两个dicts之间的数据共享对我来说很好.目前我有这个代码:

def copy_leaving_out(dictionary, key):
    return {k: v for k, v in dictionary if k != key}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来实现这一目标?

编辑:我忘了使用dictionary.items()而不是dictionary,请考虑以下代码而不是前一个代码:

def copy_leaving_out(dictionary, key):
    return {k: v for k, v in dictionary.items() if k != key}
Run Code Online (Sandbox Code Playgroud)

python dictionary copying python-3.x

0
推荐指数
1
解决办法
77
查看次数

使用Python 2比较2个列表的所有元素

我有2个列表:a = ['5', '2', '3', '4']b = ['1', '6', '7', '5'].使用Python 2,如何将每个列表元素a与每个元素进行比较b?(IE是a[0] == b[0],是a[0] == b[1],等).

我知道我可以写出许多if陈述,但我希望有更优雅的方法来做到这一点.

在检查每个列表元素之后,我想知道找到共享值的次数(在上面的示例列表中,它将是一次'5').

编辑:这不是重复,b/ci我正在比较两个不同的列表,而可能的重复只处理1个列表.

python list python-2.x

-1
推荐指数
1
解决办法
282
查看次数

如何按相对日期值对字典列表进行排序?

我的代码是:

a = {"key1": 5 , "key2": "8 hours ago", "key3": 2}
b = {"key1": 7 , "key2": "42 hours ago", "key3": 9}
c = {"key1": 6 , "key2": "1 hour ago", "key3": 1}
undecorated = [a, b, c]

undecorated.sort(key=operator.itemgetter('key2'))
Run Code Online (Sandbox Code Playgroud)

结果是:

[
{"key1": 6 , "key2": "1 hour ago", "key3": 1}
{"key1": 7 , "key2": "42 hours ago", "key3": 9}
{"key1": 5 , "key2": "8 hours ago", "key3": 2}
]
Run Code Online (Sandbox Code Playgroud)

但结果需要:

[
{"key1": 6 , "key2": "1 hour ago", "key3": …
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary list

-1
推荐指数
1
解决办法
898
查看次数

在不使用给定函数的情况下查找max元素及其索引

我试图找到最大数字和它的索引只使用for循环,没有任何Python给定的功能.

这是我的代码:

def main():
    a = [2,1,5,9,8,3,7,4,6]
    max = 0
    index = 0

    for number in a:
        if number > max:
            max = number
    index += 1

    print(max, index)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

循环完成后,我得到正确的最大数字,但索引不正确.我应该改进什么?

python python-3.x

-1
推荐指数
1
解决办法
125
查看次数

从整数中删除尾随零的更好方法

我是一个没有经验的程序员。我正在尝试从整数中删除尾随零,该整数是我在python中设置的项目。

我已经做到了,但是必须有比我炮制的怪兽更好的方法!

def removeZeros(number):
    return int(str(int(str(number)[::-1]))[::-1])
Run Code Online (Sandbox Code Playgroud)

本质上,我是将整数转换为字符串,然后将其反转,然后将其转换回整数,这将删除当前的前导零,然后将其转换为字符串并反转。最后将其转换为整数以将其返回。

任何帮助,将不胜感激。

python int

-1
推荐指数
1
解决办法
1088
查看次数

为什么Pythons unittest.assertRaises()不会在这里引发错误?

使用Python 3.5,为什么运行时会传递下面的所有测试?因为,Exceptiondiv被召唤时没有被提出,为什么assertRaises()不抱怨呢?

根据以下文档assertRaises():"如果没有例外,则会失败".

有人可以帮我吗?

..
----------------------------------------------------------------------
Ran 2 tests in 0.002s




def div(self, x, y):
    if y == 0:
        raise Exception("Division by zero")
    return x / y

class MyTest(unittest.TestCase):

    def test1(self):
        with self.assertRaises(Exception) as cm:
            self.div(2, 1)

    def test2(self):
        self.assertRaises(Exception, div, 2, 1)
Run Code Online (Sandbox Code Playgroud)

python unit-testing

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