使用Python3.6将字典值打印到字符串中

时间:2017-12-26 21:55:00

标签: python regex dictionary

说我有一个如下字典:

{'keyid': ['foo', '1', 'bar', '2', '(FancyStrininParathesis)']}

如何在字典的值中提取字符串并创建和打印一个长字符串,例如

 print (finalstring)  #Desired output:  'foo - 1 bar - 2 (FancyStrininParathesis)'

我已经能够输出值很好,但我无法弄清楚如何将数组输出为一个长字符串。我也是python的新手,我对PHP更加熟悉,但是我必须为这个项目使用一个特殊的python库。

感谢您的帮助!

4 个答案:

答案 0 :(得分:3)

从你对我的评论的回复中,我想我明白你想做什么。与

dictionnary = {'keyid': ['foo', '1', 'bar', '2', '(FancyStrininParathesis)']}

您可以使用dictionnary.items()

遍历值
for key, value in dictionnary.items():
    ...

现在因为这里value是一个列表,我们可以迭代它并创建我们自己的输出字符串:

for key, value in dictionnary.items():
    output = ""
    for item in value:
        output += item + " - "
    output = output[:-3] # Remove the last three characters
    print(output)

更加pythonic的方式是使用str.join

for key, value in dictionnary.items():
    output = str.join(" - ", value)
    print(output)

答案 1 :(得分:1)

尝试

{{1}}

答案 2 :(得分:0)

dicttt = {'keyid': ['foo', '1', 'bar', '2', '(FancyStrininParathesis)']}

entr = dicttt["keyid"] # get the list from the dictionary

print( ' - '.join(entr)) # join each lists entry by ' - ' and print all

或者如果您只是想输出它,您可以通过迭代列表并在没有换行符的情况下打印来输出它:

for n in range(len(entr)): # get an index into the list
    if (n > 0):
        print(' - ',end="") # if index > 0 print seperator, no newline

    print(entr[n] ,end="") # print list item, no newline

print() # print newline

答案 3 :(得分:-1)

试试这个

dt ={'keyid': ['foo', '1', 'bar', '2', '(FancyStrininParathesis)']}
for x in dt.values():
    s =' '.join(x)

s
print(s)