zoukankan      html  css  js  c++  java
  • 第四天——列表(一)

    一.列表
    列表是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,"alex",[1,2,3]]
    我们定义了一个列表,我们现在来看看内存中是怎样存储的

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

    1.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
    s[0] = '李'
    TypeError: 'str' object does not support item assignment
    1.2 列表的切片
    lst = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"]
    print(lst[0:3]) # ['麻花藤', '王剑林', '马芸']
    print(lst[:3]) # ['麻花藤', '王剑林', '马芸']
    print(lst[1::2]) # ['王剑林', '周鸿医'] 也有步长
    print(lst[2::-1]) # ['马芸', '王剑林', '麻花藤'] 也可以倒着取
    print(lst[-1:-3:-2]) # 倒着带步长
    练习

    li = [1, 3, 2, "a", 4, "b", 5,"c"]
    通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
    通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
    通过对li列表的切片形成新的列表l3,l3 = ["1,2,4,5]
    通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
    通过对li列表的切片形成新的列表l5,l5 = ["c"]
    通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
    1.3 列表的增删改查
    1.3.1 增
    注意 list和str是不一样的. lst可以发生改变. 所以直接就在原来的对象上进行了操作

    追加模式

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

    输入用户信息,添加到列表中

    lst = []
    while True:
    content = input("请输入你要录入的员工信息, 输入Q退出:")
    if content.upper() == 'Q':
    break
    lst.append(content)
    print(lst)
    插入模式

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

    迭代添加

    lst = ["王志文", "张一山", "苦海无涯"]
    lst.extend(["麻花藤", "麻花不疼"])
    print(lst)
    1.3.2 删除
    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
    lst.remove('哈哈') # 删除不存在的元素
    ValueError: list.remove(x): x not in list
    clear 清空

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

    结果:
    []
    练习

    写代码,有如下列表,按照要求实现每一个功能
    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    请删除列表中的元素"ritian",并输出添加后的列表
    请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
    请删除列表中的第2至4个元素,并输出删除元素后的列表
    1.3.3 修改
    索引切片修改

    修改

    lst = ["太白", "太黑", "五色", "银王", "⽇天"]
    lst[1] = "太污" # 把1号元素修改成太污 print(lst)
    lst[1:4:3] = ["麻花藤", "哇靠"] # 切片修改也OK. 如果步长不是1, 要注意元素的数
    print(lst)
    lst[1:4] = ["我是哪个村的村长王富贵"] # 如果切片没有步长或者步长是1. 则不用关心个数
    print(lst)
    1.3.4 查询  
    列表是一个可迭代对象,所以可以进行for循环

    lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]

    for i in lst:
    print(i)

    结果:
    麻花藤
    王剑林
    李嘉诚
    王富贵
    练习

    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    将列表li中第三个元素修改成'taibai'
    将列表li中第四个元素修改成'女神'
    将列表li中前三个元素修改成'alex1,alex2,alex3'
    1.4 列表的嵌套
    注意:采用降维操作,一层一层的看就好

    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)
    练习

    写代码,有如下列表,按照要求实现每一个功能。
    lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    将列表lis中的"tt"变成大写(用两种方式)。
    将列表中的数字3变成字符串"100"(用两种方式)。
    将列表中的字符串"1"变成数字101(用两种方式)。
    这个知识点用在什么地方:

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

    有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。 想到与得到中间还有两个字——做到。
  • 相关阅读:
    组装query,query汇总,query字段
    POJ 1276, Cash Machine
    POJ 1129, Channel Allocation
    POJ 2531, Network Saboteur
    POJ 1837, Balance
    POJ 3278, Catch That Cow
    POJ 2676, Sudoku
    POJ 3126, Prime Path
    POJ 3414, Pots
    POJ 1426, Find The Multiple
  • 原文地址:https://www.cnblogs.com/huoxc/p/12848489.html
Copyright © 2011-2022 走看看