将Unicode值转换为Python字典中的字符串

将Unicode值转换为Python字典中的字符串,python,dictionary,python-unicode,Python,Dictionary,Python Unicode,我构建了一个python字典,如下所示: result = {} for fc in arcpy.ListFeatureClasses(): for field in arcpy.ListFields(fc): result.setdefault(field.name, []).append(fc) 它接受每个表(要素类)中字段的名称,并将tyhem设置为字典中的键值,然后将表的名称设置为值。这很好,因为我的目标是找出哪些表具有相同的字段。我可以继续查看iter中的项目

我构建了一个python字典,如下所示:

result = {}
for fc in arcpy.ListFeatureClasses():
    for field in arcpy.ListFields(fc):
        result.setdefault(field.name, []).append(fc)
它接受每个表(要素类)中字段的名称,并将tyhem设置为字典中的键值,然后将表的名称设置为值。这很好,因为我的目标是找出哪些表具有相同的字段。我可以继续查看iter中的项目,并打印出键、值对:

for key, value in result.iteritems():
    print key + ": " +  str(value)
返回:

评论:[u'TM_FC',u'GT_FC',u'HG_FC',u'PO_FC',u'FU_FC']

我想将键值打印为字符串值,而不是unicode格式的内容,这样看起来像这样:

评论:“TM_FC”、“GT_FC”、“HG_FC”、“PO_FC”、“FU_FC”

我一直在使用'str'函数和其他各种格式化和转换为字符串的方法,但我总是返回相同的原始值列表。有人能提出一个方法来完成我所寻找的吗

谢谢,
迈克

我相信这就是你想要的

for key, value in result.iteritems():
    print key + ": " +  str([ str(v) for v in value ])

代码中的问题是调用str(value),其中value是一个数组。因此,发生的情况是数组对象的函数被调用,并且它有自己的方法来表示底层值的字符串。此默认表示法用于显示单个元素的值。因为在本例中,数组元素是unicode字符串,所以可以在输出中看到“u”

作为一种解决方案,您要做的是手动“展开”数组,并建立自己的列表表示。这里有一种方法:

for key, value in result.iteritems():
    print key + ": " +  ",".join(["'%s'" % v for v in value])

使用字符串格式简化,并使用默认编码将每个值更改为字符串。

可能重复我正在尝试将结果值复制并粘贴到spreadhseet中,因此解决方案不起作用。@Marcin这是一个正在打印的列表。它将被迭代。您的地图解决方案与列表理解一样高效。尽管您投票否决了我,但感谢marcin花时间帮助我。这正是我想弄明白的。你提供的职位并没有完全回答我所问的问题,但这是我的错,没有更清楚地了解我的最终结果。@Mike,我希望这能有所帮助。对于许多程序员来说,这个问题确实属于一个主要的困惑领域(不知道为什么),而且可能是我过于匆忙地发现了重复。
result = {u'Comments':[u'TM_FC', u'GT_FC', u'HG_FC', u'PO_FC', u'FU_FC']}
for k,v in result.iteritems():
    print u'%s:%s' % (k,map(unicode.encode,v))