小赖子的英国生活和资讯

面经: Python 的 List 和 Dictionary 有啥区别?

阅读 桌面完整版
python 面经: Python 的 List 和 Dictionary 有啥区别? I.T. 学习笔记 数据结构与算法 程序设计 计算机 面试

python

问题: Python 的 List 和 Dictionary 有啥区别?

不许查资料, 你怎么回答这个面试题?

我不加思索的回答到: List 就像数组一样 而 Dictionary 是 键值对的一数据结构.

面试官继续说, 那么 Dictionary 是有序的么?

啥? 啥是有序?

我还是犹豫了一下, 说是无序的, 面试官说, 为什么?
我说, 因为 Python 里的 Dictionary 就如 哈希表一样, 而哈希表是没有序的.
面试官似乎很满意.

回来之后, 我验证了一下.

Python3 创建数组

a=[1,2,3,4,5]

删掉3

a.remove(3)
print(a) # [1, 2, 4, 5]

把3加回去

a.append(3)
print(a) # [1, 2, 4, 5, 3]

对于数组来说, 是有序的, 因为每次添加总是在数组的末尾, 我们再来看一下 字典Dictionary:

a={1:1,2:2,3:3,4:4,5:5}

删除3:

a.pop(3) # {1: 1, 2: 2, 4: 4, 5: 5}

再把3加回到字典中:

a[3] = 3

我们得到了和最开始一样的字典:

print(a) # a={1:1,2:2,3:3,4:4,5:5}

但是在我朋友的机器上, 显示却是 {1:1,2:2,4:4,5:5,3:3}
意思是, 字典里的顺序是不能被信任的, 也就是说如果你做了一些顺序有区别的事, 那么就很可能会出问题!

for key in a:
    do_something_with_order_matters(a[key])

英文: Interview Question: What is the difference between List and Dictionary in Python?

面试经历

面试题

面试技巧

面试其它

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version