python推导式

推导式

列表推导式

  • 用[]生成的列表,基本格式:variable = [out_exp_res for out_exp in input_list if out_exp == 2]。

    • 遍历字符串

      • mystr = "Hello world"
        
        ret = [i for i in mystr]
        # ret = [i for i in mystr if i.islower()] 过滤出mystr中的小写字母
        print(ret, type(ret))
        
      • [‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ’ ', ‘w’, ‘o’, ‘r’, ‘l’, ‘d’] <class ‘list’>

    • 打印30以内被3整除的数

      • mysum = [i for i in range(0,31,3) if i%3==0]
        print(mysum)
        
      • [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

    • 列表推导式嵌套过滤出有两个e的名字

      • names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'], ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
        mynames = [j for i in range(2) for j in names[i] if j.upper().count('E')==2]
        print(mynames)
        
      • [‘Jefferson’, ‘Wesley’, ‘Steven’, ‘Jennifer’]

    • 条件判断,打印20以内能被3整除的数如果不是的话去相反数

      • q = [x if x%3==0 else -x for x in range(1,20)]
        print(q)
        
      • [-1, -2, 3, -4, -5, 6, -7, -8, 9, -10, -11, 12, -13, -14, 15, -16, -17, 18, -19]

字典推导式

  • 过滤掉key中含有‘a’的键值对:

    • dic = {'a':1, 'b':2, 'c':3, 'ab':4}
      mydic = {i:dic[i] for i in dic if 'a' not in i}
      print(mydic)
      
    • {‘b’: 2, ‘c’: 3}

  • 交换键值对

    • q={'a':10,'b':34}
      my_di = {q[key]:key for key in q}
      print(my_di)
      
    • {10: ‘a’, 34: ‘b’}

  • 将同一种字母的value相加

    • q4={'B':3, 'a':1,'b':6, 'c':3, 'A':4}
      my_di2 = {key.lower():q4.get(key.lower(),0)+q4.get(key.isupper(),0) for key in q4}
      print(my_di2)
      
    • {‘b’: 6, ‘a’: 1, ‘c’: 3}

集合推导式

  • 也具备集合的去重功能:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python推导是一种简洁的语法糖,可以从一个数据序列构建另一个新的数据序列。常见的推导包括列表推导、字典推导和集合推导。列表推导可以通过对一个列表进行迭代和筛选操作,生成一个新的列表。字典推导可以通过对一个字典进行迭代操作,生成一个新的字典。而集合推导则可以通过对一个集合进行迭代和筛选操作,生成一个新的集合。推导在数据处理场景中非常常见,并可以大大简化代码的编写和阅读。如果你想了解更多关于推导的语法和用法,请参考引用和引用中提供的链接。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python推导简单示例【列表推导、字典推导与集合推导】](https://download.csdn.net/download/weixin_38708361/12865890)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python推导](https://blog.csdn.net/iprobobo/article/details/123582135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值