zoukankan      html  css  js  c++  java
  • python基础(1)

    1、基础数据类型set的介绍

      与dict,list,tuple相比,set,是一个不可有重复元素的,可修改,可循环,无序的集合。创建方式有两种

    a={1,21,3}
    b=set("ab")
    print(a,b)

      list,str,tuple都可以直接转为set,比如列表

    l=[1,2,3,1]
    s=set(l)
    print(s)

       在set里添加元素

    e=set()
    se.add(44)
    print(se)

      求a集合中存在但是b不存在的方法

    a={11,22,33}
    b={22,55}
    c=a.difference(b)
    print(c)
    {33, 11}

      求a集合中存在但是b不存在并更新自己的方法

    a={11,22,33}
    b={22,55}
    c=a.difference_update(b)
    print(c)
    print(a)
    None
    {33, 11}

      删除元素的方法有两种

    a={11,22,33}
    a.remove(22)
    a.discard(22)
    print(a)

      如果要求删除的元素在set没有,remove是会报错的,discard不会,pop为移除,可赋值给其他变量,删除则不行。

      取交集,以及取交集并且把交集更新成自己

    a={11,22,33}
    b={22,44,55}
    c=a.intersection(b)
    print(c)
    a.intersection_update(b)
    print(a)

    {22}
    {22}

      查看a是否是b的子序列,如果是,返回true否则fales

    a={11,22,33}
    b={22,44,55}
    c=a.issubset(b)
    print(c)
    False

      是否为父序列

    a={11,22,33}
    b={22,11}
    c=a.issuperset(b)
    print(c)
    True

       取对称并集

    a={11,22,33}
    b={22,11,44}
    c=a.symmetric_difference(b)
    print(c)
    {33, 44}

      更新一个新的集合

     

    a={11,22}
    b={44,55,66}
    a.update(b)
    print(a)
    {66, 11, 44, 22, 55}

     2、三元运算的使用result = 1 if 条件 else 2

    a="hello" if 1==1 else "world"
    print(a)
    hello

    3、深浅copy

      由于python内部优化的机制下,int和str无论深浅copy,他们的内存不变,对于字典,列表等,浅拷贝只能拷贝最外边一层,如果有嵌套这也可能会导致拷贝之后内存地址不同,深copy除了最后一层,其余完全copy。

    import copy
    a=["adc","fff",{"k":"v"}]
    b=copy.copy(a)
    print(a,b)
    print(id(a))
    print(id(b))
    
    ['adc', 'fff', {'k': 'v'}] ['adc', 'fff', {'k': 'v'}]
    18408456
    10636296

     4、函数

      在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处。

    def 函数名(参数):
           
        ...
        函数体
        ...
        返回值

      def:创建函数的关键字

      函数名:就是函数的名字 ,创建之后可以根据函数名调用函数

      函数体:函数的可执行程序

      参数:为函数提供具体的数据,分为形参和实参。

      返回值:函数执行完毕之后给调用者返回的数据。

      传参默认是按照顺序传,如果指定形式,比如形参=实参的方式,可以不按照顺序,

      函数可以有默认参数,有默认参数的话,默认参数一定要放在参数的尾部。

      函数动态参数使用方法一,可以穿任意个参数,

    def a(*b):
        print(b)
    a(123,456)
    (123, 456)

      二,接受字典类型数据参数

    def a(**b):
        print(b)
    a(c=123,b=456)
    {'c': 123, 'b': 456}

      直接将字典带入的接收方式为

    def f1(**args):
        print(args)
    dic={"k1":"v1","k2":"v2"}
    f1(**dic)
    {'k2': 'v2', 'k1': 'v1'}

       全局变量和局部变量的区别在于一个在全局生效,一个只是在自己代码块的程序里生效,如果要在局部修改全局变量,请加global

    a = 123
    def f1():
        global a
        a = 456
        print(a)
    f1()
    456
  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/kading/p/5530831.html
Copyright © 2011-2022 走看看