zoukankan      html  css  js  c++  java
  • python基础数据类型一(列表)

    列表

    列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型.

    比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型:

    列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

    li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,]]
    

    列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,

    32位python的限制是 536870912 个元素,

    64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

    lst = [1,2,3,"meet",[1,2,3]]
    

    我们定义了一个列表,我们现在来看看内存中是怎样存储的

    image-20190624212208882

    lst我们就可以想象成一个书包,书包中存放了衣服,电脑,书,钱包,钱包中放的是身份证,公交卡,家门钥匙

    1 列表的索引

    列表和字符串一样也拥有索引:

    lst = ['刘德华','周润发','周杰伦','向华强']
    print(lst[0])  # 列表中第一个元素
    print(lst[1])  # 列表中第二个元素
    print(lst[2])  # 列表中第三个元素
    

    注意:列表是可以进行修改的,这里和字符串不一样

    lst[3] = '王健林'
    print(lst)
    

    字符串修改

    s = '王思聪'
    s[0] = '李'
    print(s)
    结果:
    Traceback (most recent call last):
      File "D:/python_object/path2/test.py", line 1076, in <module>
        s[0] = '李'
    TypeError: 'str' object does not support item assignment
    

    2 列表的切片

    lst = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"] 
    print(lst[0:3])     # ['麻花藤', '王剑林', '马芸'] 
    print(lst[:3])      # ['麻花藤', '王剑林', '马芸']
    print(lst[1::2])    # ['王剑林', '周鸿医'] 也有步长 
    print(lst[2::-1])   # ['马芸', '王剑林', '麻花藤'] 也可以倒着取 
    print(lst[-1:-3:-2])    # 倒着带步长
    

    3 列表的增删改查

    注意 list和str是不一样的. lst可以发生改变. 所以直接就在原来的对象上进行了操作

    追加模式

    lst = ["麻花藤", "林俊杰", "周润发", "周芷若"] 
    print(lst) 
    lst.append("wusir") 
    print(lst)
    

    插入模式

    lst = ["麻花藤", "张德忠", "孔德福"]
    lst.insert(1, "刘德华")    # 在1的位置插入刘德华. 原来的元素向后移动一位
    print(lst)
    

    迭代添加

    # 迭代添加
    lst = ["王志文", "张一山", "苦海无涯"]
    lst.extend(["麻花藤", "麻花不疼"])
    print(lst)
    

    删除

    pop 通过下标删除元素(默认删除最后一个)
    
    lst = ["麻花藤", "王剑林林", "李李嘉诚", "王富贵"] 
    print(lst)
    lst.pop()
    
    deleted = lst.pop()
    print('被删除的',deleted)
    print(lst)
    
    el = lst.pop(2)  # 删除下标位2的元素
    print(el)        # 被删除的元素
    print(lst)
    

    remove 通过元素删除

    lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]
    lst.remove('王剑林')
    print(lst)
    
    结果:
    ['麻花藤', '李嘉诚', '王富贵']
    
    lst.remove('哈哈')   # 删除不存在的元素
    结果:
    Traceback (most recent call last):
      File "D:/python_object/path2/test.py", line 1115, in <module>
        lst.remove('哈哈')   # 删除不存在的元素
    ValueError: list.remove(x): x not in list
    

    clear 清空

    lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]
    lst.clear()
    print(lst)
    
    结果:
    []
    

    修改

    索引切片修改

    # 修改 
    lst = ["太白", "太黑", "五色", "银王", "⽇天"] 
    lst[1] = "太污"   # 把1号元素修改成太污 print(lst) 
    lst[1:4:3] = ["麻花藤", "哇靠"]     # 切片修改也OK. 如果步长不是1, 要注意元素的数 
    print(lst) 
    lst[1:4] = ["我是哪个村的村长王富贵"]  # 如果切片没有步长或者步长是1. 则不用关心个数 
    print(lst)
    

    查询

    列表是一个可迭代对象,所以可以进行for循环
    
    lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]
    
    for i in lst:
        print(i)
    
    结果:
    麻花藤
    王剑林
    李嘉诚
    王富贵
    

    反转

    lst = [1,2,3,4,5]
    lst.reverse()
    

    排序

    lst = [1,2,3,4,5]
    lst.sort()  # 升序
    lst.sort(reverse=True)  # 降序
    

    查找

    lst = [1,2,3,4,5]
    lst.index(3) # 存在就返回索引,不存在就报错
    

    统计

    lst = [1,23,4,5,6,]
    lst.count(23) # 统计23出现的次数
    

    list +

    lis = [1,2,3]
    lst1 = [4,5,6]
    print(id(lis))
    print(id(lst1))
    print(id(lis + lst1))
    

    list *

    lst = [1,2,3]
    print(lst * 5)
    print(id(lst))
    print(id(lst * 5))
    

    列表在进行乘法的时候元素都是共用

    列表的嵌套

    注意:采用降维操作,一层一层的看就好

    lst = [1,'太白','wusir',['麻花疼',['可口可乐'],'王健林']]
    
    # 找到wusir
    print(lst[2])
    
    # 找到太白和wusir
    print(lst[1:3])
    
    # 找到太白的白字
    print(lst[1][1])
    
    # 将wusir拿到,然后首字母大写 在扔回去
    
    s = lst[2]
    s = s.capitalize()
    lst[2] = s
    print(lst)
    
    # 简写
    lst[2] = lst[2].capitalize()
    print(lst)
    
    # 把太白换成太黑
    lst[1] = lst[1].replace('白','黑')
    
    # 把麻花疼换成麻花不疼
    lst[3][0] = lst[3][0].replace('疼','不疼')
    print(lst)
    
    # 在可口可乐后边添加一个雪碧
    lst[3][1].append('雪碧')
    print(lst)
    

    你需要存储大量的数据,且需要这些数据有序的时候。制定一些特殊的数据群体:按顺序,按规则,自定制设计数据

  • 相关阅读:
    融云使用
    cocoaPods使用
    电脑硬件
    拖图UI和纯代码UI
    7.2内存管理-ARC
    7内存管理-MRC
    数据刷新
    5.1音频播放
    2.6核心动画
    Git常用操作
  • 原文地址:https://www.cnblogs.com/luckinlee/p/11619845.html
Copyright © 2011-2022 走看看