Day05 python的基础知识及语法(列表)

发布时间:2024年01月19日

一. 列表

1. 列表的作用:

?在程序中需要同时处理多个数据,这些数据用列表进行储存和处理比直接用多个变量更加简单。? ?

2.列表的定义:

  • ?列表是python自带的一种容器型数据类型。将[ ]作为标志,里面用多个逗号隔开:

?[数据1,数据2,....... ]

  • 列表是可变的?(可变是指列表中的元素个数和值是可以变化的-)? 支持增删改
  • 列表是有序的(其顺序影响结果,支持索引操作
  • 列表对元素(容器中每一个独立的数据)的要求:没有要求,而且同一个列表中的元素类型可以不一样。
list = [10, 1.23, 'abc', [10,20]]

3.空列表

? list[]

4. 列表中的个数

list = [
10,
[20,30],
[40,50]
]

# 这个列表中有3个元素

5.获取列表中的元素(查)

? ? ?1? .查单个:?一次获取列表中的某一个元素

? ? ? 列表[ ]?:? ? 列表可以是具体的某一个列表,也可以是一个保存列表的变量

? ? ? ? ? ? ? ? ? ? ? ?[ ]:? 固定写法

? ? ? ? ? ? ? ? ? ? ? ?索引: 列表中元素的位置信息,从0开始


 # 索引          -3   -2   -1
num = [12 , 34 , 45 , 54, 64 ]
#索引    0   1    2    3   4
        

? ?

games = ['英雄联盟', '王者荣耀', '原神', '和平精英', '穿越火线', 'QQ农场']
nums = [89, 672, 90, 12, 4]

print(games[-5])
print(games[1])

对应的都是 王者荣耀

?

? ? ? ? 2. 切片:
  • 定义: 获取列表中的部分元素(列表切片的结果是小列表)

? ? ?语法:

?????????????????列表 [ 开始下标:结束下标:步长 ]?

? ?? ? ? ?3. 如何看待切片的结果? ? ? ?
  • 第一步:看结果是否为空列表, 看从开始下标到结束下标的方向和步长对应方向是否一致(步长为正表示从前往后取,步长为负表示从后往前取)
games = ['英雄联盟', '王者荣耀', '原神', '和平精英', '穿越火线', 'QQ农场']
print(games[-1:2:-2])  #开始-1 结束2,从qq农场到元神, 步长为-2 ,从后往前。方向一致,不为空。
  • 第二步: 确定有效范围。 开始下标对应元素能取到,结束下标对应元素取不到
  • 第三步: 按照步长在有效范围内获取元素

6.切片代码的书写

  • 第一步:确定开始下标 - 就是目标数据中的第一个数据在列表中的索引值
  • 第二步:确定结束下标-? ?目标数据中的最后一个数据在列表中对应的后面那个元素(方向是从前往后取)或者前面那个元素(从后往前取)的下标。
  • 第三步: 确定步长的值

7.切片的省略写法: 完整的: 列表[ 开始下标:结束下标:步长]

  • ?省略步长: 列表[开始下标:结束下标]? ? ?省略步长就是步长为1
  • ?省略开始下标:列表?[ :结束下标:步长 ]? ?省略开始下标,获取元素的时候就从头开始取,这个头可能是第一个元素,也可能是最后一个元素(看步长的对应方向)
  • ?省略结束下标: 列表[开始下标:: 步长]。 从开始下标开始直到取完为止

8. 遍历列表 (一个一个获取列表中所有元素)

  • 方法1: 直接遍历列表
for 变量 in 列表:
    循环体(变量依次获取到的就是列表中的每个元素)
games = ['英雄联盟', '王者荣耀', '原神', '和平精英', '穿越火线', 'QQ农场']
for i in games:
    print(i)

? 打印列表中的每一个元素

  • 方法2 :通过遍历列表中元素下标来遍历元素(len() 获取列表的长度,获取索引值)
games = ['英雄联盟', '王者荣耀', '原神', '和平精英', '穿越火线', 'QQ农场']
for i in range(len(games)):
    print(games[i])

? 9. 列表的增删改

? ?1. 增 :
  • ? 往列表中添加元素
  • ? 列表.append(数据)? ? ? - 在指定列表的最后添加指定数据
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
print(tvs)
tvs.append('庆余年')
print(tvs)
? 案例:写程序将nums中所有的元素都乘以2产生一个新的列表
nums = [90, 34, 55, 81, 30, 97, 76]
num = [90, 34, 55, 81, 30, 97, 76]
new_num = []
for i in num:
    i *= 2
    new_num.append(i)
print(new_num)

******************************************
num = [90, 34, 55, 81, 30, 97, 76]
new_num = []
for i in range(len(num)):
    new_num.append(num[i] * 2)
print(new_num)
?2. 增? 列表.insert(下标,元素).??

? ? 在列表中的指定下标对应的元素前插入指定元素

tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs.insert(2,'庆余年')
print(tvs)
3. 删 :del 列表[下标] : 删除列表中指定下标对应的元素
  • 删除列表汇总已经存在的元素
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
del tvs[1]
print(tvs)

#删除绝命毒师
4. 删: 列表.remove(元素)? -删除指定元素 (有多个相同元素,只会删除第一个)
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs.remove('绝命毒师')
print(tvs)
#删除绝命毒师
5. 删: pop()
  • 列表.pop():? ?取走列表中的最后一个元素,并且返回(是有结果的)
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs.pop()
print(tvs)
  • 列表.pop(下标): 取走列表中指定下标对应的元素,并且返回
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs.pop(0)
print(tvs)

# 取走甄嬛传
6. 改
  • 修改列表中元素的值
列表[下标] = '新数据'
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs[2] = '三国演义'
print(tvs)

文章来源:https://blog.csdn.net/weixin_46659095/article/details/135688762
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。