Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Python字典组合成字符串csv_Python_Dictionary - Fatal编程技术网

将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中的逗号即可。看到它在行动,请接受一个答案,如果它对你有帮助。嗨,拉姆,就是这么做的。我希望这就足够了。嗨,拉姆,我刚做到了。我希望这就足够了。