比如说,我们有以下词典:
dict1 = {a:b, b:c}
dict2 = {b:c, c:d}
Run Code Online (Sandbox Code Playgroud)
交叉两个词典的键的最有效方法是什么?
当然,人们可以使用set(dict1.keys()).intersection(set(dict2.keys())),但我认为首先将字典转换为集合并不是很有效.
在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) 我有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个列表.
我的代码是:
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) 我试图找到最大数字和它的索引只使用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中设置的项目。
我已经做到了,但是必须有比我炮制的怪兽更好的方法!
def removeZeros(number):
return int(str(int(str(number)[::-1]))[::-1])
Run Code Online (Sandbox Code Playgroud)
本质上,我是将整数转换为字符串,然后将其反转,然后将其转换回整数,这将删除当前的前导零,然后将其转换为字符串并反转。最后将其转换为整数以将其返回。
任何帮助,将不胜感激。
使用Python 3.5,为什么运行时会传递下面的所有测试?因为,Exception在div被召唤时没有被提出,为什么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 ×7
dictionary ×3
python-3.x ×3
list ×2
copying ×1
int ×1
python-2.x ×1
sorting ×1
unit-testing ×1