zoukankan      html  css  js  c++  java
  • Python小白学习之路(五)—【类和对象】【列表】【列表相关功能】

    类和对象

    (简单的了解一下这个概念,初步有个印象,这个概念很重要,后面会着重讲)

    类:具有相同属性和方法的对象的集合;     

    对象:万物皆对象;

    概念很抽象(每当我看不到概念的时候,我就会通过举例来理解)

    我们说的数字(int)、字符串(str)以及今天学习的列表(list)就是类

    list    # 类list
    
    li = ['xhg',123,[33,'小伙郭'],'asf',854]        #li 是通过list类来创建的对象

    列表

    li = ['xhg',123,[33,'小伙郭'],'asf',854]

    通过这个例子列表的特征:

    • 是通过中括号 [  ]  起来
    • 用逗号  来分割列表中的每一个元素
    • 列表中的元素可以是 数字、 字符串、 列表、 布尔值(暂时理解是所有的都可以放进去,所以啥都行)
    • List是一个类,一个类可以看成是一个集合,内部可以放置任何东西

    列表的功能

    1.索引取值

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
    
    print(li[2])
    
     
    li[0]    #字符串str
    
    li[2]    #列表 list
    
    li[1]    #数字int

    注意:索引结果的类型为该元素类型

    2.切片取值

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
    v = type(li[0:2])
    print(v,li[0:2])

    注意:切片结果的类型始终为list

    3.循环(for whlie)

    只要有循环,continuebreak就可以用啊

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
    for item in li:
        print(item)

    4.列表的修改

    方法一:通过索引方式

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
    li[1] = 456
    print(li)

    方法二:通过切片方式

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
    li[0:2]=[11,'aaa']
    print(li)

    5.列表的删除

    方法一:通过索引方式

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
    del li[1]
    print(li)

    方法二:通过切片方式

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
    del li[0:2]
    print(li)

    方法三:clear全部删除(清空列表)

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
    li.clear()
    print(li)

    方法四:pop

    • Remove and return item at index (default last).
    • Raises IndexError if list is empty or index is out of range.
    • 删除列表中的某个值,并将该值返回
    • 可以通过索引来指定删除哪一个元素
    • 如果不设置参数,默认删除最后一个
    li = ['a','qwe',123,147]
    v = li.pop()
    print(li,v)
    li = ['a','qwe',123,147]
    v = li.pop(1)
    print(li,v)

    方法五:remove

    • 删除列表中出现的第一个要删除的对象
    • 通过设置参数来删除元素
    • Remove first occurrence of value.

    • Raises ValueError if the value is not present.

    li = ['a','qwe',123,147,123]
    li.remove(123)
    print(li)

    列表创建可以被修改(字符串不可以字符串连续存储)

    因为其存储不连续(链表存储)通过索引和切片方式进行修改、删除

    6.存在in  not in操作

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
    v1 = 123 in li
    v2 = 'xxx' not in li
    print(v1,v2)

    7.取列表中所嵌套的列表里的元素

    li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854,True]
    print(li[2][1][1])

    8.字符串《===》列表

    类型a转换为类型b,可以初步理解为

    b = ba

    比如字符串类型转换为数字类型:

    a = '123'
    b = int(a)

    字符串===》列表(把某个东西转换为列表,内部实质为使用for循环)

     

    text = 'safklasdfl;kasdfkasd'
    new_li = list(text)
    print(new_li)

    字符串《===列表

    如果按照之间说的转换思路:

    li = [123,456,'adf','qwe','xhg',147]
    s = str(li)
    x = type(s)
    print(x,s)
    
    执行结果:
    
    <class 'str'> [123, 456, 'adf', 'qwe', 'xhg', 147]

    是把列表整体转换成一个字符串,如果我们想要去掉中括号呢?

    方法一:如果列表里元素类型既有数字,又有字符串(需要自己写for循环来一个一个处理)

    li = [123,456,'adf','qwe','xhg',147]
    s = ''
    for item in li:
        s = s + str(item)
    print(s)
    

     

    方法二:如果列表里元素类型只有字符串,使用join即可

    li = ['adf','qwe','xhg']
    s = ''.join(li)
    print(s)
    
     

    9.append

    • 功能是追加,在原来的值得最后追加,(Append object to the end of the list.
    • 可追加各种类型的元素
    li = ['adf','qwe','xhg']
    li.append(5)
    li.append('xxx')
    li.append([123,456,'aaa'])
    print(li)

    10.extend

    • 功能是扩展原列表
    • 参数:可迭代对象  

    (不同于append追加,通过具体例子看结果来理解二者的具体不同之处)

    li = ['adf','qwe','xhg']
    li.extend('123')
    print(li)
    # 执行结果
    # ['adf', 'qwe', 'xhg', '1', '2', '3']
    
     
    li = ['adf','qwe','xhg']
    li.append('123')
    print(li)
    # 执行结果
    # ['adf', 'qwe', 'xhg', '123']
    
     

    12.copy  浅拷贝

    (有浅拷贝,必然会存在深拷贝,这部分知识后续会讲)

    li = ['adf','qwe','xhg']
    v = li.copy()
    print(v)

    13.count

    计算列表中元素出现的次数(不加参数报错)

    li = ['a','qwe','a','xhg',123,147,123,]
    v = li.count('a')
    print(v)

    14.Index

    • 从左边开始,根据值来获取当前值索引位置,并将其索引位置返回
    • 如果该值不存在,报错
    • Return first index of value.
    • Raises ValueError if the value is not present.
    li = ['a','qwe','a','xhg',123,147,123,]
    v = li.index(123)
    print(v)
    

    15.insert

    • 在指定索引位置插入元素
    • 第一个参数为指定索引位置,第二个参数为插入的元素
    li = ['a','qwe',123,147,123]
    li.insert(1,123)
    print(li) 

    16.reverse

    • 当前列表进行翻转
    li = ['a','qwe',123,147,123]
    li.reverse()
    print(li)

    16.sort  

    • 排序

     

    #从小到大排序
    li = [14,25,1,5,9,87]
    li.sort()
    print(li)
    
    #从大到小排序(对列表值进行顺序排序后,利用reverse进行翻转)
    li = [14,25,1,5,9,87]
    li.sort(reverse=True)
    print(li)

     

     

  • 相关阅读:
    Linux文件管理
    网络层基础
    引导与服务控制实验
    交换机基础
    计算机网络基础
    计算机视觉 牛人主页 Hanson
    CV codes代码分类整理合集(http://www.sigvc.org/bbs/thread7211.html) Hanson
    机器学习中的相似性度量 (附matlab代码) Hanson
    机器学习问题方法总结 Hanson
    支持向量机很全的代码和数据集 Hanson
  • 原文地址:https://www.cnblogs.com/guoruxin/p/9862640.html
Copyright © 2011-2022 走看看