我正在尝试这样做:
i = 1
for item in cart:
data_ps['itemId' + i] = item
i += 1
但是Python给我返回了一个错误:can only concatenate str (not "int") to str.
有什么主意如何增加字典中键的值?
答案 0 :(得分:1)
问题在于'itemId'
是一个字符串,i
是一个整数,如果没有某种形式的操纵,例如'itemId' + str(i)
,就无法添加它们。
如果您使用的是相对较新的Python版本(3.6或更高版本),f-strings
提供了一种执行此操作的好方法(a):
i = 1
for item in cart:
data_ps[f"itemId{i}"] = item
i += 1
但是,由于无论如何看来您都是从1
开始的,因此您很有可能每次都从头开始创建字典data_ps
而不是添加字典。如果是 情况,则可以使用字典理解以单行代码的方式执行此操作(下面的第二行):
>>> cart = ["apple", "banana", "carrot"]
>>> data_ps = {f"itemId{i+1}":cart[i] for i in range(len(cart))}
>>> print(data_ps)
{'itemId1': 'apple', 'itemId2': 'banana', 'itemId3': 'carrot'}
(a)与字符串连接和string.format()
相比,它们的优势在于它们读起来更好:将放入字符串的项目就在其中字符串本身,在该位置。将下面的内容与以下内容进行对比,您将会明白我的意思:
tmpFile = f"/tmp/{user}_tmp_{os.getpid()}_dir"
tmpFile = "/tmp/" + user + "_tmp_" + os.getpid() + "_dir"
tmpFile = "/tmp/{}_tmp_{}_dir",format(user, os.getpid())
答案 1 :(得分:0)
您可以尝试
i=1
for item in cart:
data_ps['itemId' + str(i)] = item
i += 1
答案 2 :(得分:0)
这也是您可以使用的另一种方式,如果您对C / C ++更加熟悉,则可以提供帮助:
i = 1
for item in cart:
data_ps["itemId%d" % i] = item
i += 1
%d 表示在此位置插入整数值