作为变量名传递字典键在python中不起作用

2024-05-29 03:11:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在字典里用“key”作为变量名。你知道吗

>> print(port1)

2

>> print(virsh_out1)

{1: 'tap5be16f98-d3 bridge     qbr5be16f98-d3 virtio      fa:16:3e:0c:70:bf', 2: 'tap1685f051-29 bridge     qbr1685f051-29 virtio      fa:16:3e:b8:63:49', 3: 'tap54de7c68-a4 bridge     qbr54de7c68-a4 virtio      fa:16:3e:f5:c4:7a', 4: 'tap5b857c99-7c bridge     qbr5b857c99-7c virtio      fa:16:3e:a0:64:dc', 5: 'tap7104dac4-6b bridge     qbr7104dac4-6b virtio      fa:16:3e:fd:d3:ab', 6: 'tap0a3f7a0e-60 bridge     qbr0a3f7a0e-60 virtio      fa:16:3e:dd:50:35'}

>> dir(virsh_out1)

['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']

>> print(virsh_out1[2])

tap1685f051-29 bridge     qbr1685f051-29 virtio      fa:16:3e:b8:63:49

>> print(virsh_out1[port1])

*** KeyError: '2'

这里,变量名port1的值=2。如果我尝试使用print(virsh\u out1[port1]),它抛出KeyError,而print(virsh\u out1[2])也可以使用同样的方法。有人能帮忙吗?你知道吗


Tags: keyreducefaa4bridged3printkeyerror
1条回答
网友
1楼 · 发布于 2024-05-29 03:11:01

将字符串port1转换为int

port1 = '2'
virsh_out1 = {  1: 'tap5be16f98-d3 bridge     qbr5be16f98-d3 virtio      fa:16:3e:0c:70:bf', 
                2: 'tap1685f051-29 bridge     qbr1685f051-29 virtio      fa:16:3e:b8:63:49', 
                3: 'tap54de7c68-a4 bridge     qbr54de7c68-a4 virtio      fa:16:3e:f5:c4:7a', 
                4: 'tap5b857c99-7c bridge     qbr5b857c99-7c virtio      fa:16:3e:a0:64:dc', 
                5: 'tap7104dac4-6b bridge     qbr7104dac4-6b virtio      fa:16:3e:fd:d3:ab', 
                6: 'tap0a3f7a0e-60 bridge     qbr0a3f7a0e-60 virtio      fa:16:3e:dd:50:35'}

print(virsh_out1[int(port1)])
# tap1685f051-29 bridge     qbr1685f051-29 virtio      fa:16:3e:b8:63:49

相关问题 更多 >

    热门问题