zoukankan      html  css  js  c++  java
  • Python基础

    主要是复习时总结自己不太熟悉的知识点了(面向Internet的总结)。

    函数的参数

    1. 位置参数——按位置依次对应

    2. 关键字参数——按“键值对”对应

      func('hello', val = 1)
      

      调用时:若有位置参数,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

    3. 默认参数——为参数提供默认值,调用时可不传

      def func(val1, val2 = 7):
          pass
      
      func(10)
      func(10, 20)
      

      调用时:若有位置参数,位置参数必须在默认参数的前面

    4. 可变参数——可以有不确定个数的参数,非常灵活,收集参数然后packaging

      def func(*args, **kw)
      

      *args接受一堆位置参数打包成tuple, *kw接受一堆关键字参数打包成dict,具体示例(混用)如下:

      def person(name, age, *args, hobby="blank", **kwa):
          for i in args:
              print(i)
          for k, v in kw.items():
              print(k, v)
      
      person('Loli', 17)
      person('loli', 17, 'Light of', 'my life', hobby='seduction', otherInfo='fire of my loins')	# 还是位置参数放在关键字参数前
      
    5. 可变参数之愉快解包——就是直接传入tuple或者dict喵:)

      def func(args, kw):
          pass
      
      l1 = ('hi', 'nice', 2, 'meet', 'u')
      l2 = {'one':1, 'two':2}
      
      func(*l1, **l2)
      

    内置数据结构

    1. list

      l1 = []
      l2 = list()
      l1.append(2)
      l2 = [i for i in range(1, 10) if i % 2 == 1]
      del l2[2]
      l2.reverse()
      l3 = l1 + l2 # l1.extend(l2)
      l3.insert(2, 12) #insert(index, data)
      l3.count(12)
      l3.clear()
      
    2. tuple——不可变的list,有序

      t1 = ()
      t2 = (1,) # 只有一个元素记得加’,‘
      
    3. set——无序,元素互异性,只可存可哈希元素(str, int, float, tuple,冰冻集合)

      s1 = set()
      s2 = {1, 2} # 必须有值,否则为dict
      s1.add(22)
      s1.clear()
      s2.discard(2)
      s2.pop()
      
      # 集合函数
      # intersection: 交集
      # difference:差集
      # union: 并集
      # issubset: 检查一个集合是否为另一个子集
      # issuperset: 检查一个集合是否为另一个超集
      s1 = {1,2,3,4,5,6}
      s2 = {5,6,7,8,9}
      
      s_1 = s1.intersection(s2)
      s_2 = s1.difference(s2)
      s_3 = s1.issubset(s2)
      
      # 冰冻集合frozenset——不可变set
      s = frozenset()
      
    4. dict——无序序列:无分片索引;key必须可哈希

      d1 = dict({'one':1, 'two':2, 'three':3})
      d2 = dict(one=1, two=2, three=3)
      d3 = dict( [('one',1), ('two',2), ('three',3)])
      
      for k in d:
          print(k,  d[k])
          
      # 上述代码可以改写成如下
      for k in d1.keys():
          print(k,  d[k])
          
      # 只访问字典的值
      for v in d2.values():
          print(v) 
          
      # 注意以下特殊用法
      for k,v in d3.items():
          print(k,'--',v)
          
      dd = {k:v for k,v in d1.items()}
      print(d2.get("on333")) # 没有则返回None
      
      l = ['hi', 'i', 'am']
      d = dict.fromkeys(l, "ha") # 使用指定的序列作为键,使用一个值作为字典的所有的键的值
      # d = {'hi': 'ha', 'i': 'ha', 'am': 'ha'}
      
    醉 生 梦 死
  • 相关阅读:
    Java实现 蓝桥杯 算法提高 特等奖学金(暴力)
    Java实现 蓝桥杯 算法提高 特等奖学金(暴力)
    Java实现 蓝桥杯 算法提高 GPA(暴力)
    Java实现 蓝桥杯 算法提高 GPA(暴力)
    Java实现 蓝桥杯 算法提高 GPA(暴力)
    Java实现 蓝桥杯 算法提高 套正方形(暴力)
    Java实现 蓝桥杯 算法提高 套正方形(暴力)
    第一届云原生应用大赛火热报名中! helm install “一键安装”应用触手可及!
    云原生时代,2个方案轻松加速百万级镜像
    Knative 基本功能深入剖析:Knative Serving 自动扩缩容 Autoscaler
  • 原文地址:https://www.cnblogs.com/TuerLueur/p/9527450.html
Copyright © 2011-2022 走看看