微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从字典中将键和值作为一个打印出来不包括无

如何解决如何从字典中将键和值作为一个打印出来不包括无

我已经编写了一些非常简单的代码,例如:

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
}

当我使用dict运行代码时,它返回:TypeError: unhashable type: 'slice'行中的print('\n'.join(data[i:j]))

我的问题是,如何将键和值打印为一个值,并且如果dict的值不为None,那么我们只打印不带“ None”值的键?

解决方法

不起作用的原因是因为您无法使用切片语法访问字典中的项目-必须使用其键直接访问它们。

最简单的方法是将键作为列表获取,然后循环播放,检查值是否不是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])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。