是否有一种快速方法可以在保留字典值的同时截断字典键中的空格?也许是枚举或字典综合方法。
我可以使用.replace(" ", "")
来创建它,但它创建了一个只包含键而不是值的新列表。
示例:
cities = {
"Las Vegas": [36.1215, -115.1739],
"Los Angeles": [34.0500, -118.2500],
"Salt Lake City": [40.7500, -111.8833]
}
到
citiesTruncated = {
"LasVegas": [36.1215, -115.1739],
"LosAngeles": [34.0500, -118.2500],
"SaltLakeCity": [40.7500, -111.8833]
}
答案 0 :(得分:4)
字典理解起作用:
citiesTruncated = {key.replace(" ", ""): value for key, value in cities.items()}
请注意,如果您使用python2,则应将.items()
替换为.iteritems()
以避免创建中间列表。
答案 1 :(得分:4)
循环或理解非常简单:
citiesTruncated = {key.replace(' ', ''):value for key,value in cities.items()}
答案 2 :(得分:0)
如果您想要保留dict
的身份,那么就没有这么简单的方法(因为dict
不支持切片)。所以你需要做的是:
for key in cities:
new_key = key.replace(' ', '')
if new_key == key:
continue
cities[new_key] = d[key]
del cities[key]
否则,如果您不想要或甚至不想保留身份(truncatedCities
是新创建的dict
而不是cities
)您当然可以使用理解:
citiesTruncated = {key.replace(" ", ""): value for key, value in cities.items()}
在第二个解决方案中,即使你最终得到一个新的dict
,这些值仍然相同(不仅相等) - 这意味着向cities["Las Vegas"]
附加内容会附加到citiesTruncated["LasVegas"]
{1}}因为它们是相同的。