将Python字典组合成字符串csv
我这里有一本字典:将Python字典组合成字符串csv,python,dictionary,Python,Dictionary,我这里有一本字典: dict = {'AB': 1, 'AE': '0', 'CC': '3'} 我正在尝试将该词典转换为精确的字符串格式: AB1,AE0,CC3 我目前一直在尝试: string = ",".join(("{},{}".format(*i) for i in dict.items())) 但我的成果是: AB,1,AE,0,CC,3 只是稍微有点差 有人知道如何将这本词典正确格式化为字符串吗 谢谢我们开始删除逗号: d = {'AB': 1, 'AE': '0', '
dict = {'AB': 1, 'AE': '0', 'CC': '3'}
我正在尝试将该词典转换为精确的字符串格式:
AB1,AE0,CC3
我目前一直在尝试:
string = ",".join(("{},{}".format(*i) for i in dict.items()))
但我的成果是:
AB,1,AE,0,CC,3
只是稍微有点差
有人知道如何将这本词典正确格式化为字符串吗
谢谢我们开始删除逗号:
d = {'AB': 1, 'AE': '0', 'CC': '3'}
output = ",".join(["{}{}".format(key, value) for key, value in d.items()])
# ^^^^
print(output)
这就产生了
AB1,AE0,CC3
或者使用原始的拆包方法:
output = ",".join(["{}{}".format(*x) for x in d.items()])
另外,请不要以内置对象dict、list、tuple等命名变量。这里我们删除逗号:
d = {'AB': 1, 'AE': '0', 'CC': '3'}
output = ",".join(["{}{}".format(key, value) for key, value in d.items()])
# ^^^^
print(output)
这就产生了
AB1,AE0,CC3
或者使用原始的拆包方法:
output = ",".join(["{}{}".format(*x) for x in d.items()])
此外,请不要以内置对象dict、list、tuple等命名变量。代码:
dict = {'AB': 1, 'AE': '0', 'CC': '3'}
string=','.join([i+str(dict[i]) for i in dict])
print(string)
输出:
AB1,AE0,CC3
AB1,AE0,CC3
代码:
输出:
AB1,AE0,CC3
AB1,AE0,CC3
其思想是循环字典的每个元素,然后将其键和值连接在一起。最后,将这个连接的值附加到一个列表中
d = {'AB': 1, 'AE': '0', 'CC': '3'}
#initialize an empty list
l=[]
for i in d:
l.append(str(i)+str(d[i]))
一旦获得该列表,只需使用join函数将其转换为一个字符串,其元素之间用逗号分隔
out = ','.join(l)
print(out)
'AB1,AE0,CC3'
其思想是循环字典的每个元素,然后将其键和值连接在一起。最后,将这个连接的值附加到一个列表中
d = {'AB': 1, 'AE': '0', 'CC': '3'}
#initialize an empty list
l=[]
for i in d:
l.append(str(i)+str(d[i]))
一旦获得该列表,只需使用join函数将其转换为一个字符串,其元素之间用逗号分隔
out = ','.join(l)
print(out)
'AB1,AE0,CC3'
更实用的解决方案:
# don't shadow `dict`
d = {'AB': 1, 'AE': '0', 'CC': '3'}
# `starmap` flattens argument to a function
# needed for `str.format`
from itertools import starmap
# build parts from dictionary items
parts = starmap('{}{}'.format, d.items())
# build end result from parts
result = ','.join(parts)
如果您想要一个强大的解决方案,您应该使用csv模块并查看DictWriter,这是一个功能更强大的解决方案:
# don't shadow `dict`
d = {'AB': 1, 'AE': '0', 'CC': '3'}
# `starmap` flattens argument to a function
# needed for `str.format`
from itertools import starmap
# build parts from dictionary items
parts = starmap('{}{}'.format, d.items())
# build end result from parts
result = ','.join(parts)
如果您想要一个健壮的解决方案,您应该使用csv模块并查看DictWriter,如果您使用的是Python 3,您可以使用所谓的f字符串:
d = {'AB': 1, 'AE': '0', 'CC': '3'}
out = ','.join([f'{i}{d[i]}' for i in d.keys()])
print(out)
输出:
AB1,AE0,CC3
AB1,AE0,CC3
如果您想了解更多关于f字符串的信息,请参见此。请记住,此解决方案仅适用于Python 3.3及更新版本。如果您使用的是Python 3,则可以使用所谓的f字符串:
d = {'AB': 1, 'AE': '0', 'CC': '3'}
out = ','.join([f'{i}{d[i]}' for i in d.keys()])
print(out)
输出:
AB1,AE0,CC3
AB1,AE0,CC3
如果您想了解更多关于f字符串的信息,请参见此。请记住,此解决方案仅适用于Python 3.3及更新版本。只需删除dict.items中连接字符串=,.join{}{}.format*i for i中的逗号即可。如果答案对你有帮助,请接受它。只需删除连接字符串=,.join{}{}.format*i for i for i in dict.items中的逗号即可。看到它在行动,请接受一个答案,如果它对你有帮助。嗨,拉姆,就是这么做的。我希望这就足够了。嗨,拉姆,我刚做到了。我希望这就足够了。