python知识点(一)

1、排序

sort() 没有返回值,在原数据上操作
正序排列

list1 = [2, 5, 4, 9, 5, 7, 48, 6, 1, 3]

list1.sort()
print(list1)
# [1, 2, 3, 4, 5, 5, 6, 7, 9, 48]

倒序排列

list1 = [2, 5, 4, 9, 5, 7, 48, 6, 1, 3]

list1.sort(reverse=True)
print(list1)
# [48, 9, 7, 6, 5, 5, 4, 3, 2, 1]

sorted() 有返回值,返回新的序列

list1 = [2, 5, 4, 9, 5, 7, 48, 6, 1, 3]

list2 = sorted(list1)
print(list1)
print(list2)
# [2, 5, 4, 9, 5, 7, 48, 6, 1, 3]
# [1, 2, 3, 4, 5, 5, 6, 7, 9, 48]

也可以倒序

list1 = [2, 5, 4, 9, 5, 7, 48, 6, 1, 3]

list2 = sorted(list1, reverse=True)
print(list1)
print(list2)
# [2, 5, 4, 9, 5, 7, 48, 6, 1, 3]
# [48, 9, 7, 6, 5, 5, 4, 3, 2, 1]

可指定排序规则
按绝对值排序

list1 = [2, 5, -4, -9, -5, 7, 48, -6, 1, 3]

list2 = sorted(list1, key=abs)
print(list1)
print(list2)
# [2, 5, -4, -9, -5, 7, 48, -6, 1, 3]
# [1, 2, 3, -4, 5, -5, -6, 7, -9, 48]

字典排序

dic = {
    'a': 2,
    'd': 7,
    'b': 12,
    'f': 3,
    'c': 1
}

dic_lis: list = sorted(dic.items(), key=lambda d: d[1])

print(dict(dic_lis))
# {'c': 1, 'a': 2, 'f': 3, 'd': 7, 'b': 12}

二、类属性和类方法

使用 类名() 创建对象
1、创建出来的 对象 叫做 类 的 实例
2、创建对象的 动作 叫做 实例化
3、对象的属性 叫做 实例属性
4、对象调用的方法 叫做 实例方法

在程序运行时,类同样会被加载到内存。在Python中,类 是一个特殊的对象 —— 类对象。在程序运行时,类对象在内存中只有一份,使用一个类可以创建出很多个对象实例。除了封装实例的属性和方法外,类对象还可以拥有自己的属性和方法

  • 类属性
  • 类方法
    通过 类名.类属性 或 类名.类方法 的方式可以访问类的属性或者调用类的方法

访问类属性可以有两种方式
在这里插入图片描述
在这里插入图片描述
类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本。对于公有的类属性,在类外可以通过类对象和实例对象访问。如果在类外修改类属性,必须通过类对象去引用然后进行修改。如果通过实例对象去引用,会产生一个同名的实例属性,这种方式修改的是实例属性,不会影响到类属性

类方法是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数,能够通过实例对象和类对象去访问。类方法还有一个用途就是可以对类属性进行修改。

class A(object):
    a = 10

    def __init__(self):
        self.b = 12

    @classmethod
    def get_a(cls):
        return cls.a

    def get_b(self):
        return self.b


# 访问类属性
print(A.a)  # 10
# 访问类方法
print(A.get_a())  # 10
# 修改类属性
A.a = 100
print(A.a)  # 100
print(A.get_a())  # 100

# 创建实例对象
t = A()

# 实例对象访问实例属性
print(t.b)   # 12

# 实例对象访问实例方法
print(t.get_b())    # 12

# 实例对象访问类属性
print(t.a)        # 100

# 实例对象访问类方法
print(t.get_a())   # 100

# 实例对象对类属性赋值,实际是实例对象添加了新的属性,类属性并没有改变
t.a = 200
print(t.a)   # 200
print(A.a)   # 100
print(id(A.a))   # 1437297984   
print(id(t.a))   # 1437301184   与 A.a 并不是同一个 a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值