【python Tips】那些事半功倍的数据结构和内置函数 TIPS

1. 数据结构

1.1 排序相关

  • 列表排序输出对应的索引
heights = [2,1,5,6,2,3]
s = sorted(range(len(heights)), key=lambda k: heights[k])
s
Out[5]: [1, 0, 4, 5, 2, 3]

1.2 字典

  • 字典设置默认值
    • dict.fromkeys(key_list, default_value)
    • dict_obj.setdefault(key, default_value)
# list元素作为key,设置默认值value: dict.fromkeys(key_list, default_value)
word = 'string'
sdict = dict.fromkeys(word, 1)
sdict
Out[13]: {'s': 1, 't': 1, 'r': 1, 'i': 1, 'n': 1, 'g': 1}

# dict_obj.setdefault
sdict = dict()
sdict.setdefault('gender', 'male')
Out[15]: 'male'
sdict
Out[16]: {'gender': 'male'}

2. 内置函数

2.1 filter函数

  • 描述
    filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
    该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

  • 语法

    filter(function, iterable)
    
    参数:
    	function -- 判断函数;
    	iterable -- 可迭代对象。
    
  • 示例
    过滤出1~100中平方根是整数的数:

    import math
    def is_sqr(x):
        return math.sqrt(x) % 1 == 0
     
    newlist = list(filter(is_sqr, range(1, 101)))
    print(newlist)
    

    输出结果:

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值