首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从字典中将键和值打印为一个键和值(无除外

如何从字典中将键和值打印为一个键和值(无除外
EN

Stack Overflow用户
提问于 2020-10-30 21:50:58
回答 1查看 50关注 0票数 0

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

代码语言:javascript
复制
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:]))

然而,这在基于列表的情况下工作得很好,但是我创建了一个字典,如下所示:

代码语言:javascript
复制
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“值的键?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-30 22:07:04

它不工作的原因是因为你不能使用分片语法访问字典中的条目-它们必须使用它们的键直接访问。

最简单的方法是以列表的形式获取键,然后循环它,检查值是否不是None,然后连接内容并打印它。

代码语言:javascript
复制
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])
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64609678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档