我需要在Python3中使用字典键创建一个行字符串。 我可以使用end =''函数将它们打印在一行中,但我不能像那样更新。
我有一个如下字典。
BLOB
}
我正在将它们分类到关键字并获得长度
array = {
'MERCHANT': "TEST",
'ORDER_REF': "Test123",
'BACK_REF': "http://2ac99X37.ngrok.io/",
'ORDER_PNAME[0]': "BLA",
'ORDER_PCODE[0]': "BLA",
'ORDER_PINFO[0]': "BLA",
'ORDER_PRICE[0]': "1",
'ORDER_VAT[0]': "18",
但是当我在此步骤打印hashstring时,他们打印如下
for k, v in sorted(array.items()):
hashstring =str(len(v)) + str(v)
我需要像下面这样更新它们,因为真正的哈希计算
25http://2ac99X37.ngrok.io/
4TEST
3BLA
3BLA
3BLA
11
7Test123
218
像上面提到的那样;我可以用end =''在一行中打印它们 函数,但这不会影响“hashstring”参数值。
我的哈希计算代码如下所示。
25http://2ac99X37.ngrok.io/ 4TEST 3BLA 3BLA 3BLA 11 7Test123 218
你能帮助我吗?
最佳,
答案 0 :(得分:1)
您需要在循环之前初始化ft.replace(R.id.mainFrame, fragmentAc);
,然后在循环中保持连接,如下所示:
hashstring
输出:
hashstring = ''
for k, v in sorted(array.items()):
hashstring += '{}{} '.format(len(v), v)
hashstring = hashstring[:-1] # to remove the trailing space
或者您可以使用列表推导而不是循环来在一行中执行以下操作:
25http://2ac99X37.ngrok.io/ 4TEST 3BLA 3BLA 3BLA 11 7Test123 218
答案 1 :(得分:0)
每当您想要将多个单独的字符串组合成一个带分隔符的字符串时,您希望使用.join
。因此,将您的零件累积到一个列表中,然后.join
它们:
In [6]: hashparts = []
In [7]: for k, v in sorted(array.items()):
...: hashparts.append(str(len(v)) + str(v))
...:
In [8]: hashstring = ' '.join(hashparts)
In [9]: print(hashstring)
25http://2ac99X37.ngrok.io/ 4TEST 3BLA 3BLA 3BLA 11 7Test123 218
答案 2 :(得分:0)
您的代码格式不正确。
我认为问题出在你的for循环中。
如果您编写hashstring =str(len(v)) + str(v)
,每次打印时它都会表示不同的值。
尝试
hashstring=''
for k, v in sorted(array.items()):
hashstring += str(len(v)) + str(v)
print(hashstring)