zoukankan      html  css  js  c++  java
  • 关于Python的一些基础操作

    1.列表去重并且保持原来的顺序

    """
    有一个列表[11, 2, 3, 3, 7, 9, 11, 2, 3],去重并且保持原来的顺序.
    """
    
    numbers = [11, 2, 3, 3, 7, 9, 11, 2, 3]
    ret = list(set(numbers))
    print(ret)
    ret.sort(key=numbers.index)  # 按值在l1中的索引进行排序
    print(ret)
    View Code

    2.深浅拷贝和字典赋值

    """
    问:执行完下面的代码后,  l,m的内容分别是什么?
    """
    from copy import deepcopy
    
    
    def func(m):
        for k, v in m.items():
            m[k+2] = v+2     # 不成立的,字典的key不能被改变
    
    
    m = {1: 2, 3: 4}
    l = m     # 浅拷贝
    l2 = deepcopy(m)    # 深拷贝
    l[9] = 10
    l2[90] = 100
    # func(l)
    print(l)     # l和m共享一块内存空间,所以值会一起改变
    print(m)
    print(l2)     # 自己独立开辟出一块空间
    View Code

    3.模拟链式操作

    """
    Python模拟链式操作示例
    """
    
    
    class Foo(object):
    
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def wang(self):
            print("自信是件好事")
            return self
    
        def run(self):
            print("谦虚也是本分")
            return self
    
    
    f = Foo("小二哥", 18)     # 生成一个实例,调用了__init__
    f.wang().run()            # 连接调用
    
    
    f1 = f.wang()              # 单独调用
    f1.run()
    View Code

    4.%和format的区别

    """
    %和format的区别
    """
    c = (180, 180)
    command1 = "来人啊,把他给我伦了:敌人坐标:%s" % (c,)    # 不加逗号报错
    command2 = "来人啊,把他给我伦了:敌人坐标:{}".format(c)
    
    
    class Person(object):
    
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def __str__(self):
            return "{self.name} is {self.age} years old.".format(self=self)
    
    
    p = Person("小二哥", 18)
    print(p)
    
    
    # 下标
    data = [11, 22]
    print("{0} --- {0}".format(data))      # 添加相同数据
    print("{0[0]} --- {0[0]}".format(data))    # 等同于列表操作
    print("{0[0]} --- {0[1]}".format(data))
    
    print("{:>10}".format(18))         # 10个字符,不够空格填充
    
    print("{:0>10}".format(18))        # 10个字符,不够0来填充
    print("18".zfill(10))
    
    print("{:A>10}".format(18))         # 10个字符,不够A填充
    
    print("{:.4f}".format(3.1415926))      # 保留4位小数
    
    print("{:,}".format(1234567890))       # 3位数据之前逗号分隔,钱
    View Code

    5.函数里面可变对象不能做关键字参数

    """
    可变对象不能做关键字参数
    函数定义时生成一个空列表定义,值都会指向这个空列表
    """
    import random
    
    numbers = [11, 22, 33, 44, 55]
    print(numbers[8:])           # 列表切片超过列表本身range范围返回[]空列表
    
    random.shuffle(numbers)
    print(numbers)                # 打乱列表的顺序
    
    
    def func(arg, li=[]):
        li.append(arg)
        return li
    
    
    list1 = func(21)
    print(list1)
    list2 = func(21, [1,])
    print(list2)          # 返回了一个新列表[1, 21]
    list3 = func(28)
    print(list3)          # [21, 28]可是只传递了一个参数
    
    
    def foo(arg, ni=[]):
        return ni.append(arg)     # 还没有完成追加,返回空值
    
    
    l1 = foo(21)
    print(l1)                   # None
    l2 = foo(21, [1,])
    print(l2)                   # None
    l3 = foo(28)
    print(l3)                   # None
    View Code

     

     

  • 相关阅读:
    清除内联元素间默认的间隔
    Idea配置SpringBoot热部署
    导出下载模板
    Java 使用Graphics2D 进行画图
    【Modbus】Java使用 modbus-master-tcp 读取和写入Modbus服务器数据
    解决txt文件上传oss服务器乱码的问题
    docker java.lang.NoClassDefFoundError: org/bouncycastle/** 解决
    解决SpringBoot 报错 Error parsing HTTP request header
    React+AntDesign使用Tree树控件完整展现其中的层级关系,并具有展开收起选择等交互功能
    AntDesign使用Form表单出现You cannot set a form field before rendering a field associated with the value
  • 原文地址:https://www.cnblogs.com/Guishuzhe/p/9816098.html
Copyright © 2011-2022 走看看