如果想要输出所有元素的个数要怎么写呢?

来源:7-7 Python操作dict的其他方法

慕慕尼黑黑

2021-06-12 13:41

Alice、Bob、Candy三个都是dict中的元素,它们都是一个带3各元素的列表,那么期望结果是输出9个元素,该怎么写呢?

写回答 关注

1回答

  • 慕慕尼黑黑
    2021-06-12 14:07:55

    研究了一下可以这样写:

    d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66, 55], 'Candy': [88, 75, 90, 89, 80]}
    keys = d.keys()
    values = d.values()
    All = 0
    for i in values:
        print("每个元素的长度是:" + str(len(i)))
        All = len(i) + All
    print("全部元素个数为:" + str(All))
    print("dictionary的长度是:"+str(len(keys)))
    for i in keys:
        print("dictionary中的元素有:"+str(i))
    for key, values in d.items():
        print(key, values)

    结果是:

    每个元素的长度是:3
    每个元素的长度是:4
    每个元素的长度是:5
    全部元素个数为:12
    dictionary的长度是:3
    dictionary中的元素有:Alice
    dictionary中的元素有:Bob
    dictionary中的元素有:Candy
    Alice [50, 61, 66]
    Bob [80, 61, 66, 55]
    Candy [88, 75, 90, 89, 80]

    但是有一个问题,如果把输出长度那一块for代码移到最后就会报错:File "E:/PythonCode/text1/mooc-text.py", line 11, in <module>
        print("每个元素的长度是:" + str(len(i)))
    TypeError: object of type 'int' has no len()

    qq_Iam...

    如果把输出长度那一块for代码移到最后 你的这一段代码: for key, values in d.items(): print(key, values) for循环后 最终你的values是 [88, 75, 90, 89, 80] 然后才进行: for i in values: print("每个元素的长度是:" + str(len(i))) All = len(i) + All 这样你取的i全是[88, 75, 90, 89, 80]里面的数字 这就是为什么你的报错中提示 int类型没有求长度len()

    2021-07-10 02:11:19

    共 1 条回复 >

Python3 入门教程(新版)

python3入门教程,让你快速入门并能编写简单的Python程序

154167 学习 · 1075 问题

查看课程

相似问题