我有一本字典,如下:
dict={'a':'1','b':'2', 'c':'3'}
为了将其转换为逗号分隔键字符串key_string
和逗号分隔值字符串val_string
,我执行以下操作:-
key_list=[]
val_list=[]
for key,value in dict.iteritems():
key_list.append(key)
val_list.append(value)
key_string = ','.join(key_list)
val_string = ','.join(val_list)
结果是
key_string = "a,b,c"
val_string = "1,2,3"
有没有更有效/更优雅的方法来做到这一点?
发布于 2015-05-04 15:26:25
使用str.join(iterable)
(提示:不要将您的dict命名为dict
):
d = {'a':'1', 'b':'2', 'c':'3'}
print(",".join(d.keys()))
print(",".join(d.values()))
输出:
c,a,b
3,1,2
请注意,字典没有顺序。因此,输出也没有任何可以依赖的顺序。
发布于 2015-05-04 15:27:23
你可以这样做:
key_string = ','.join(dict.keys())
val_string = ','.join(dict.values())
发布于 2019-06-10 00:41:05
使用相同的函数str.join(iterable)
,如果字典值不全是字符串,则使用list-comprehension shorthand
d = {'a': '1', 'b': 2, 'c': {'d': 3}, 'e': [4,5,6]}
print(",".join(d.keys()))
print(",".join([str(e) for e in d.values()]))
输出:
a,b,c,e
1,2,{'d': 3},[4, 5, 6]
如果你想要自定义格式,那么这就是一个优雅的抽象。用您的自定义格式化程序myFormatter(e)
替换str(e)
。
https://stackoverflow.com/questions/30024695
复制相似问题