我已经编写了一些非常简单的代码,例如:
data = ["39", "40.5", "41", "42", "42.5", "43", "44", "44.5", "45", "45.5", "46"]
characterCount, i = 0, 0
for j, item in enumerate(data):
if len(item) + characterCount > 20:
print('\n'.join(data[i:j]))
characterCount, i = len(item), j
else:
characterCount += len(item)
if characterCount:
print("if characterCount")
print('\n'.join(data[i:]))然而,这在基于列表的情况下工作得很好,但是我创建了一个字典,如下所示:
data = {
'39': ' - (3)',
'40.5': ' - (4)',
'41': None,
'42': ' - (16)',
'42.5': None,
'43': ' - (36)',
'44': ' - (78)',
'44.5': None,
'45': ' - (30)',
'45.5': ' - (12)',
'46': None
}当我使用字典运行代码时,它返回:TypeError: unhashable type: 'slice' in row:print('\n'.join(data[i:j]))
我的问题是,我如何将键和值打印为一个值,如果一个dict的值为None,那么我们只打印没有"None“值的键?
发布于 2020-10-30 22:07:04
它不工作的原因是因为你不能使用分片语法访问字典中的条目-它们必须使用它们的键直接访问。
最简单的方法是以列表的形式获取键,然后循环它,检查值是否不是None,然后连接内容并打印它。
dict_keys = list(data.keys())
for index, key in enumerate(dict_keys):
if data[key]:
print(dict_keys[index] + data[key])
else:
print(dict_keys[index])https://stackoverflow.com/questions/64609678
复制相似问题