我有一本与此类似的词典
dic1 = {'Name': 'John', 'Time': 'morning'}
我想用" _"来连接键和值。具有以下模式的分隔符:
Name_John_Time_morning
这相当于key1_value1_key2_value2
我尝试过以下代码但没有成功
x + "_" + v for x,v in dict1.keys(), dict1.values()
答案 0 :(得分:4)
>>> dic1 = {'Name': 'John', 'Time': 'morning'}
>>> '_'.join(map('_'.join, dic1.items()))
'Name_John_Time_morning'
或使用生成器表达式而不是map
:
>>> '_'.join('_'.join(item) for item in dic1.items())
'Name_John_Time_morning'
BTW,dict
未订购。所以结果可能会有所不同。
答案 1 :(得分:3)
我更喜欢理解
result = '_'.join(x + '_' + y for x, y in dic1.items())
或
result = '_'.join('{}_{}'.format(*p) for p in dic1.items())
当存在非字符串键或值时,后一种形式也有效。
确保输出已排序,
result = '_'.join('{}_{}'.format(*p) for p in sorted(dic1.items()))
答案 2 :(得分:1)
print "_".join("{}_{}".format(k,v) for k,v in dic1.items())
给出:
Name_John_Time_morning
答案 3 :(得分:0)
如果我们正在打高尔夫球,而且我有迭代球......
'_'.join(chain(*dic1.items()))