【python面试170题】4. 数据类型-列表、字典

【面试题目来着微信公众号:GitChat】

列表

  1. 已知 AList = [1,2,3,1,2],对 AList 列表元素去重,写出具体过程。
    想到了三种方法:利用集合元素不可重复,利用字典的key值不可重复,直接遍历判断
# 列表去重
def test10():
    AList = [1, 2, 3, 1, 2]
    # 1. 用集合去重
    a = list(set(AList))
    print(a)
    # 2. 用字典的key值不能重复去重
    b = {}
    [b.setdefault(i) for i in AList]
    b_result = list(b.keys())
    print(b_result)
    # 3. 遍历去重
    c = []
    [c.append(i) for i in AList if i not in c]
    print(c)
  1. 如何实现 “1,2,3” 变成 [“1”,“2”,“3”]
def test11():
    a = '1,2,3'
    b = a.split(",")
    return b
  1. 给定两个 list,A 和 B,找出相同元素和不同元素
def test12():
    # 找出交集和并集,遇到这种题,可以画图哦
    a = [1, 2, 3]
    b = [2, 3, 4]
    a1 = set(a)
    b1 = set(b)
    jiao = list(a1 & b1)  # 交集
    bing = list(a1 | b1)  # 并集
    bu = list(a1 - b1)  # 补集
    bing_jiao = list(a1 ^ b1)  # 并集-交集
    print(jiao)
    print(bing)
    print(bu)
    print(bing_jiao)


"""
函数执行结果:
[2, 3]
[1, 2, 3, 4]
[1]
[1, 4]
"""
  1. [[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
[j for i in a for j in i]
  1. 合并列表[1,5,7,9]和[2,2,6,8]
[1,5,7,9].extend([2,2,6,8])
  1. 如何打乱一个列表的元素?
def test14():
    # 用random模块中的shuffle方法打乱列表中的元素的顺序
    a = [i for i in range(1, 10)]
    import random
    random.shuffle(a)
    print(a)

字典

  1. 字典操作中 del 和 pop 有什么区别
    python3中的字典已经没用del方法了;
    del是删除某个键值对,没用返回值;而pop是弹出某个键值对,会返回这个键对应的值.
  2. 按照字典的内的年龄排序
# 字典排序
def test16():
    a = {"张三": 15, "李四": 22, "王五": 13, "黄六": 42}
    # sorted+lambda,直接根据字典的values对键值对排序
    print(sorted(a.items(), key=lambda x: x[1]))
    # 用列表的排序方法排序
    b = [i for i in a.items()]
    b.sort(key=lambda x: x[1])
    print(b)


# 函数执行结果:
# [('王五', 13), ('张三', 15), ('李四', 22), ('黄六', 42)]
# [('王五', 13), ('张三', 15), ('李四', 22), ('黄六', 42)]
# 备注:
# 1. sorted的参数reverse是布尔值,如果为真,则是逆序,为假,则为正序.
# 2. .sort()是列表排序的方法,用法类似.但是.sort()方法没有返回值,排序修改的列表本身;而sorted函数有返回值.
  1. 请合并下面两个字典 a = {“A”:1,“B”:2},b = {“C”:3,“D”:4}
def test17():
    a = {"A": 1, "B": 2}
    b = {"C": 3, "D": 4}
    a.update(b)
    print(a)
  1. 如何使用生成式的方式生成一个字典,写一段功能代码。
{i: i for i in range(1,5}
  1. 如何把元组(“a”,“b”)和元组(1,2),变为字典{“a”:1,“b”:2}
def test19():
    a = ("a", "b")
    b = (1, 2)
    c = dict(zip(a,b))
    print(c)

面试题目来着微信公众号:GitChat
Python 爬虫面试题 170 道
以上答案皆为鄙人回答,如有问题,敬请诸君指出.
【python面试170题】系列
1. 语言特性
2. 编码规范
3. 数据类型-字符串
4. 数据类型-列表、字典

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值