gpt4 book ai didi

python - 来自字符串和变量值组合的字典键名

转载 作者:行者123 更新时间:2023-12-05 09:28:49 24 4
gpt4 key购买 nike

基本上,我试图将列表中的值作为键值对附加到新字典中。我想要特定格式和顺序的键名。

#!/usr/bin/env python3
ipv4_list = ["192.168.1.2", "192.168.1.3", "192.168.1.4"]
ipv4_dic = {}
ipv4_len = len(ipv4_list)
i = 1

for val in range(len(ipv4_list)):
ipv4_dic[i] = ipv4_list[val]
i+=1

print(ipv4_dic)

当前输出:

{1: '192.168.1.2', 2: '192.168.1.3', 3: '192.168.1.4'}

上面的很好,但我想将 key 名称更改为 IP1、IP2 等。

如何在 ipv4_dic[i] = ipv4_list[key] 行中实现这一点

我尝试了类似 ipv4_dic["IP"+i] 的东西,但没有用。

    ipv4_dic["IP"+i] = ipv4_list[val]
TypeError: can only concatenate str (not "int") to str

预期的字典输出如下:

{IP1: '192.168.1.2', IP2: '192.168.1.3', IP3: '192.168.1.4'}

最佳答案

它不起作用,因为您试图将字符串与整数连接起来,这在 Python 中是不允许的。

为了让您的代码以尽可能少的修改工作,将整数 i 转换为字符串,通过 str() 函数,即替换为您的代码

ipv4_dic["IP"+i] = ipv4_list[val]

ipv4_dic["IP"+str(i)] = ipv4_list[val]

但是,您可以使用字典理解,即循环您将要创建的 ipv4_dic 的每个位置,将根据 ipv4_list 的每个元素构建的 key 放在那里>,在一行代码中。

ipv4_list = ["192.168.1.2", "192.168.1.3", "192.168.1.4"]
ipv4_dic = {f"IP{i+1}": ipv4_list[i] for i in range(len(ipv4_list))}

解释:对于从 0len(ipv4_list) 范围内的每个 i,我们通过 f-string< 构建单个字典键,将字符串 "IP" 连接到值 i+1(范围从 0 开始,但您想要第一个字典元素为 "IP1",这就是 i+1 的原因)。然后,我们将此键的值设置为 ipv4_list[i],这是您的起始列表中包含的单个元素。

基本用法是

l = ['A', 'B', 'C']

d = {i : l[i] for i in range(len(l))}

这与您的情况非常相似,没有对键创建进行改进,因为您正在递增索引(即 i)并将其连接到一个字符串。

关于python - 来自字符串和变量值组合的字典键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71092493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com