在Python3中使用Dictionary Keys创建一个行字符串

时间:2017-09-01 19:30:09

标签: python python-3.x dictionary

我需要在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

你能帮助我吗?

最佳,

3 个答案:

答案 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)