python :6 列表

1 列表常规操作

  • 列表的应用场景
  • 列表的格式
  • 列表的常用操作
  • 列表的循环遍历
  • 列表的嵌套使用

1.1 列表的应用场景

思考: 有一个人的姓名(TOM)怎么书写存储程序?

答:变量。

思考:如果一个班级100位学生,每个人的姓名都要存储,应该如何书写程序? 声明100个变量吗

答: 列表即可,列表一次性可以存储多个数据

1.2 列表的格式

[数据1,数据2,数据3,数据4......]

列表可以一次性存储多个数据,且可以为不同数据类型

注意:在工作中需要将共同的数据类型存放在一个列表中,因为不同的数据类型操作是不一样的,所以我们为了后期方便控制都是存放一样的数据类型

1.3 列表的常用操作

1.3.1 函数

1.3.1.1 index()

index():返回指定数据所在位置的下标

1.语法:

列表序列.index(数据,开始位置下标,结束位置下标)

2.快速体验

name_list = ['Tom','Lily','Rose' ]
print(name_list.index('Lily',0,2)) # 1
[10:01:05 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
1

注意:查找数据不存在则报错,如下示例

name_list = ['tom','lily','rose']

# 可以看到在 name_list 列表中并没有 22 这个数据
print(name_list.index('22',0,2))
# 所以直接报错
[10:04:37 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
Traceback (most recent call last):
  File "/root/py-demo/day-1/test.py", line 2, in <module>
    print(name_list.index('22',0,2))
ValueError: '22' is not in list

1.3.1.2 count()

count():统计指定数据在当前列表中出现的次数

name_list = ['tom','lily','rose']

# 输出 1 
print(name_list.count('tom'))
# tom 出现过一次所以输出 1
[10:07:12 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
1

1.3.1.3 len()

len():访问列表长度,即列表中数据的个数

name_list = ['tom','lily','rose']

# 将 name_list 列表的长度输出
print(len(name_list))
# 因为在 name_list 中只有 3 个 index ,所以长度为 3
[10:10:49 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
3

1.3.2 判断是否存在

in: 判断指定数据在某个列表序列,如果在返回True,否则返回False

name_list = ["tom","lisi",'zhangsan']

# true
print('tom' in name_list)

# name_list 不包含 11 返回 false
print('11' in name_list)

not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False

name_list = ["tom","lisi",'zhangsan']

# name_list 包含 tom 所以返回 false
print('tom' not in name_list)

# name_list 不包含 11 返回 true
print('11' not in name_list)
[10:25:18 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
False
True

体验案例:

需求: 查找用户输入的名字是否已经存在

name_list = ["tom","lisi",'zhangsan']

name = input('请输入您要搜索的名字:')
if name in name_list :
    print(f'您输入的名字是{name},名字已经存在')
else:
    print(f'您输入的名字{name},名字不存在')
[14:29:55 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
请输入您要搜索的名字:12
您输入的名字12,名字不存在
[14:30:04 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
请输入您要搜索的名字:tom
您输入的名字是tom,名字已经存在

1.4 列表嵌套

所谓列表嵌套指的就是一个列表里面包含了其他的子列表

应用场景:要存储班级一、二、三。三个班级学生姓名,且每个班级的学生姓名在一个列表。

# 在下面的 name_list 中每个嵌套的列表就表示一个班级
name_list = [['小明’,'小红','小绿'],['Tom',"Lily','Rose'],["张三','李四
王五']]
name_list = [['tom','baoluo','erdong'],['11','22','33'],['zhangsan','lishi','wangmazi']]

# 拿到班级一
print(name_list[0])

# 单独拿出 baoluo
print(name_list[0][1])
[14:51:15 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['tom', 'baoluo', 'erdong']
baoluo

2 函数增加操作

2.5 append 追加操作

作用:增加指定数据到列表中。

  • append():列表结尾追加数据。

1、语法

列表序列.append(数据)

2、体验

name_list = ['tom','lily','rose']

# 通过 append 追加 xiaomi
name_list.append('xiaomi')
print(name_list)
[15:16:27 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['tom', 'lily', 'rose', 'xiaomi']

可以在后面追加一个列表。

name_list = ['tom','lily','rose']

# 这里将 [11,22] 追加到 name_list 中
name_list.append([11,22])
print(name_list)
[16:12:40 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['tom', 'lily', 'rose', [11, 22]]

注意:

  1. 列表数据可改的,列表可变类型
  2. append 函数追加数据的时候如果数据是一个序列,追加整个序列到结尾
  3. 列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据。

2.6 extend() 逐一追加

extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据拆开逐一添加到列表

1、语法:

列表序列.extend(数据)

2、快速体验

name_list = ['tom','lily','rose']

# 通过 extend 函数将 xiaomi 追加
name_list.extend('xiaomi')
print(name_list)

可以看到这里已经将 xiaomi 拆开追加到了 name_list 后面

[16:12:41 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['tom', 'lily', 'rose', 'x', 'i', 'a', 'o', 'm', 'i']

可以在后面追加一个列表。但是会将新追加的列表进行拆分

1、快速上手

name_list = ['tom','lily','rose']

# 这里将 [111,22] 追加至 name_list 后面
name_list.extend([111,22])
print(name_list)

# 将 [111,22] 拆开并将每个数据逐一追加至 name_list 中
print(len(name_list))

可以看到 [111,22] 已经被拆分

[16:18:30 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['tom', 'lily', 'rose', 111, 22]
5

注意:

extend() 追加数据是一个序列,把数据序列里面的数据拆开然后逐一追加到列表的结尾

2.7 insert() 插入数据

insert():指定位置新增数据,可以在列表的任意位置添加

1、语法

列表序列.insert(位置下标,数据)

2、快速体验

name_list = ['tom','lily','rose']

#  ['tom','lily','hahaha','rose'],这里是将 haha 插入到下标为 2 的位置
name_list.insert(2,"hahaha")

# ['xixi','tom','lily','hahaha','rose']
name_list.insert(0,"xixi")
print(name_list)
[16:23:11 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['xixi', 'tom', 'lily', 'hahaha', 'rose']

3 删除操作

3.1 del

1、语法

del 目标

2、快速体验

name_list = ['tom','lily','rose']

del name_list

# 输出:'name_list' is not defined 提示找不到了
# 因为我们在第二行代码已经将 name_list 删除
print(name_list)
[16:23:22 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
Traceback (most recent call last):
  File "/root/py-demo/day-1/test.py", line 4, in <module>
    print(name_list)
NameError: name 'name_list' is not defined

3、指定删除下标数据

name_list = ['tom','lily','rose']

# 指定删除下标为 0 的数据
del name_list[0]

print(name_list)
[16:36:18 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['lily', 'rose']

3.2 pop

删除指定下标的数据,如果不指定下标,默认删除最后一个数据,无论是按照下标还是删除最后一个,pop函数都会返回这个被删除的数据

 name_list = ['tom','lily','rose']

del_name = name_list.pop()

# 删除的数据
print(del_name)

# 原列表
print(name_list)
# 将 rose 删除,并且返回原列表的数据中只有 'tom', 'lily'
[16:40:23 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
rose
['tom', 'lily']

指定下标删除

name_list = ['tom','lily','rose']

# 指定删除下标为 1 
del_name = name_list.pop(1)

# 删除的数据
print(del_name)

# 原列表
print(name_list)
# lily 已经被删除,现在的 name_list 只有'tom', 'rose'
[16:41:38 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
lily
['tom', 'rose']

3.3 remove

remove(): 移除列表中某介数据的第一个匹配项

1、语法

数据.remove(删除数据)

2、操作

name_list = ['tom','lily','rose']

# 指定删除 tom
name_list.remove('tom')
print(name_list)
# 可以看到 tom 已经删除
[16:43:40 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['lily', 'rose']

3.4 clear() 清空列表

clear() 清空列表

name_list = ['tom','lily','rose']

# 调用 clear 函数
name_list.clear()

print(name_list)
# 可以看到 name_list 数据已经被清空
[16:43:54 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
[]

4 修改操作

4.1 修改指定下标

  • 修改指定下标数据
name_list = ['tom','lily','rose']

# 指定修改下标为 0 
name_list[0] = 'aaa'
print(name_list)
[09:51:32 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['aaa', 'lily', 'rose']

4.2 reverse() 逆向排序

reverse():逆向排序

name_list = ['1','2','7','8','3','4','9','5','6']

name_list.reverse()
print(name_list)
# 可以看到将列表中的数据反过来排序
[10:09:45 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['6', '5', '9', '4', '3', '8', '7', '2', '1']

4.3 sort():排序

sort():排序

1、语法

列表序列.sort(key=None,reverse=False)

注意: reverse表示排序规则,reverse = True 降序, reverse = False 升序 (默认)

name_list = ['1','2','7','8','3','4','9','5','6']

# 默认为升序
name_list.sort()
print(name_list)

# 降序
name_list.sort(key=None,reverse=True)
print(name_list)
[10:16:18 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['1', '2', '3', '4', '5', '6', '7', '8', '9']
['9', '8', '7', '6', '5', '4', '3', '2', '1']

5 复制

5.1 copy 函数

name_list = ['tom','lily','rose']
name_list2 = name_list.copy()

print('name_list2:',name_list2)
[11:07:37 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
name_list2: ['tom', 'lily', 'rose']

6 列表的循环遍历

需求: 依次打印列表中的各个数据。

6.1 while

  • 代码
'''
1.准备表示下标数据
2.循环 while
    条件 i < 3 len()
    遍历:依次按顺序访问到序列的每一个数据
    i += 1
'''

name_list = ['tom','lily','rose']

i = 0

# 通过 len 函数获取 name_list 长度进行遍历
while i < len(name_list):
    print(name_list[i])
    i+=1
# 输出
[14:14:04 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
tom
lily
rose

6.2 for

注意:

一般在工作中涉及到列表循环遍历的话就需要采用 for 循环

name_list = ['tom','lily','rose']

# 通过 for 循环将 name_list 的数据赋值给 i ,然后由 print 输出
for i in name_list:
    print(i)
# 输出
[14:17:21 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
tom
lily
rose

7 列表嵌套

所谓列表嵌套指的就是一个列表里面包含了其他的子列表

应用场景: 要存储班级一、二、三 三个班级学生姓名,且每个班级的学生姓名在一个列表。

name_list = [['小明','小虎','小马'],['大黑','大狗','大任'],['中间','中观','中海']]

print(name_list)

# 指定输出下标为 0 内嵌下标为 2 的数据:小马
print(name_list[0][2])
# 输出
[14:26:51 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
[['小明', '小虎', '小马'], ['大黑', '大狗', '大任'], ['中间', '中观', '中海']]
小马

8 总结

  • 列表的格式
[数据1,数据2,数据3]
  • 常用操作方法
    • index()
    • len()
    • append()
    • pop()
    • remove()
  • 列表嵌套
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇