6. Python List全解析

List详解

  • 类型
  • 访问
  • 更新
  • 删除
  • 脚本操作符 + *
  • 列表的截取
  • 列表的嵌套
  • 列表的函数和方法
1. 类型

python中所有的变量都属于某个class, 如False, int, float, 当然list也属于python中list类

# 基本类型
a,b,c,d,e= 1, 1.0, False, 'ab', complex(1.0)
print('Type {}: {}, Type {}: {}, Type {}: {}, Type {}: {}, Type {}: {}'.format(\
	a, type(a),b, type(b), c, type(c), d, type(d), e, type(e)))
# 所以python中任意一个变量都是属于一个类的
Type 1: <class 'int'>, 
Type 1.0: <class 'float'>, 
Type False: <class 'bool'>, 
Type ab: <class 'str'>, 
Type (1+0j): <class 'complex'>
#

同样list属于什么类呢

a = [1, 2, 3]
print('Type {}: {}'.format(a, type(a)))
# Type [1, 2, 3]: <class 'list'>
2. 访问

list访问使用中括号[]进行访问

a = [1,2,3]
print(a[1]) #下表是从0开始计数,结果为2
3. 更新

list使用中括号进行更新[]

a = [1, 2, 3]
a[1] = 10000
print(a)  # [1, 10000, 2]
4.删除

使用del list[index]删除对应index的元素

a = [1, 2,  3]
del a[2]
print(a) # [1, 2]
5. 常用操作符

常用操作符有两个一个是+一个是*
+表示列表的连接
*表示列表的重复

判断元素是否在列表中in

a = [1, 2]
b = [2, 3]
print(a + b) # [1, 2, 2, 3]
print(a * 2) # [1, 2, 1, 2]
print(1 in a) # True
6. 列表的截取

列表截取,从前到后,下表开始我0, 从后往前,下表开始为-1

a = [1, 2, 3]
print(a[1])  # 2
print(a[-1]) # 3
7. 嵌套列表

即列表中可以放列表

a = [1, 2, 3]
b = [1, 2, 5]
c = [a, b] # [[1, 2, 3], [1, 2, 5]]
8. 常用的函数和方法

首先需要区分函数和方法
函数:

  • 内置函数, 内置函数专门弄一个blog进行记录
  • 匿名函数, 以_开头,只有类中可以使用

方法: 首先方法分为静态方法属性方法实例方法
静态方法:使用装饰器@staticmethod
属性方法:使用装饰器@property, 把一个方法变成属性的调用形式
实例方法:不用任何装饰器,函数参数为self

class Dog():
    def __init__(self, name):
        self.name = name
    # static method,可以使用或者类进行调用
    @staticmethod
    def eat():
        print('eat')

    #属性方法,用来代替setter和getter方法
    @property
    def get_name(self):
        return self.name

    # 实例方法,只能通过实例进行调用
    def set_name(self, name):
        self.name = name

Dog.eat()
g = Dog('jack')
print(g.get_name)

g.set_name('rose')
print(g.get_name)

列表中常用的函数和方法有
函数

  1. append:追加元素
  2. count: 元素在列表中出现的次数
  3. index,元素在列表中第一次出现的位置
  4. pop :移除最后一个元素,并且返回
  5. remove(obj): 移除第一个匹配项
  6. reverse(), 对列表进行翻转
a = [1, 1, 2, 2]
a.append(3)
print(a) #[1, 1, 2, 2, 3]
print(a.count(2)) # 含有两个2
print(a.index(2)) # 5

b = a.pop()
print(b) # 3
print(a) # [1, 1, 2, 2]

a.reverse()
print(a) # [2, 2, 1, 1]
  1. copy(): 深拷贝,相当于a[:]
    这个和numpy的结果是完全不一样的,numpy中也有copy表示深拷贝,但是numpy中a[:]表示创建一个view, 会改变原来的值,相当于引用
a = [1, 2, 3]
b = a.copy() # a.copy和a[:]是一样的
print('a: {}, b: {}'.format(a, b))
b[1] = 100
print('a: {}, b: {}'.format(a, b)) #深拷贝,不会改变原来的值

import numpy as np
a = np.array([1, 2, 3])
b = a.copy()  #a.copy()和a[:] 不一样,a[:]数据共用但是属性可以进行改变
print('a: {}, b: {}'.format(a, b))
b[1] = 100
print('a: {}, b: {}'.format(a, b)) #深拷贝,不会改变原来的值
  1. list.sort(key=None, reverse=False)
a = [(1 ,2), (0,3)]
a.sort()
print(a)   #按照默认的排序方法,reverse=False

def get_ele(a):
    return a[1]

a.sort(key=get_ele)  #按照key进行排序
print(a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值