前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1.列表的定义及增删改查

1.列表的定义及增删改查

作者头像
见贤思齊
发布2020-11-13 15:10:30
1.1K0
发布2020-11-13 15:10:30
举报
文章被收录于专栏:初见Linux

一、列表

列表由一系列按特定顺序排列的元素组成。我们可以创建包含字母表中所有字母、数字0~9,也可以将任何东西加入列表中,其中的元素之间可以没有任何关系鉴于列表通常包含多个元素,所以给列表指定一个表示复数的名称(如:names)是一个不错的主意python中,用方括号[]来表示列表,并用逗号来分隔其中的元素若是直接打印列表,Python会打印列表的内部表示,包括方括号

二、定义列表

我们创建的大多数列表都将是动态的,这意味着在列表创建之后,将随着程序的运行增删元素。 例如:你创建一个游戏,要求玩家射杀小怪兽;为此,可在开始时将一些小怪兽存储在列表中,然后每当有小怪兽被消灭时,都将其从列表中删除,而每次有新的小怪兽出现在屏幕上时,都将其添加到列表中。在整个游戏运行期间,小怪兽列表的长度将不断变化。

1.[]中括号

用中括号括起一堆数据即可,数据之间用逗号隔开

代码语言:javascript
复制
lis = [1,2,3,4,5]
(1)创建空列表

不知道要向列表中添加什么数据,也可创建一个空列表。

代码语言:javascript
复制
empty = []
(2)列表中嵌套列表
代码语言:javascript
复制
lis1 = [1,'思齐',155.520,[1,2,2] ]

可以看到上面这个列表包含有: 整型、字符串、浮点型数据、子列表。

2.list()方法

list()方法用于把一个可迭代对象转换为列表

代码语言:javascript
复制
list(iterable)
'''
    功能: 把一个可迭代对象转换为列表.
    
    参数: 
        ① iterable: 可迭代对象。
    
    返回值: 列表。
'''
(1)创建空列表
代码语言:javascript
复制
empty = list()
empty
(2)将字符串中的每个字符迭代存放进列表
代码语言:javascript
复制
a = list('Hero') 
a
(3)将元组中的每个元素迭代存放进列表
代码语言:javascript
复制
b = list( (1,2,3,4,5) )
b
(4)与range()结合生成数字列表
代码语言:javascript
复制
numbers = list(range(1,6))
numbers

三、列表的访问

可以通过元素的索引值(index)从列表中获取单个元素

1.访问列表元素

列表是有序集合,因此想要访问列表的任意元素,只需将该元素的位置或索引告诉Python即可要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内

(1)示例
① 例1
代码语言:javascript
复制
fruits = ['葡萄','草莓','大鸭梨','菠萝']
print(fruits[2])
'大鸭梨'

当我们请求获取列表元素时,Python只返回该元素,而不包括方括号和引号。 此外,还可以对任何列表元素调用一些方法,如title()、uper()等

2.索引

列表索引值从 0 开始。 在Python中,凡是顺序索引第一个列表元素的索引为0,而不是1。在大多数编程语言中都是如此,这与列表操作的底层实现相关。因为计算机本身是二进制的,在二进制世界里只有两个数:0 、1,0也就是二进制中第一个数,秉承这个传统,0也就用于表示第一个数。 如果结果出乎意料,请看看你是否犯了简单的差一错误。 第二个列表元素的索引为1。依此类推,要访问列表的任何元素,都可将其位置减1,并将结果作为索引(index)

(1)索引为负值

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素。 这种语法很有用,因为我们经常需要在不知道列表长度的情况访问最后的元素。 这种约定也适用于其他负数索引,例如:索引-2返回倒数第二个列表元素,素引-3返回倒数第三个列表元素,以此类推。

① 示例
代码语言:javascript
复制
fruits = ['葡萄','草莓','大鸭梨','菠萝']
fruits[-1]
'菠萝'

3.使用列表中的各个值

可像使用其他变量一样使用列表中的各个值。例如,你可以使用拼接根据列表中的值来创建消息。

代码语言:javascript
复制
animals = ["rabbit","dog","panda","cat"] 
# 使用animals[2]的值生成一个句子,并将其存储在变量message中
message = "My favorite animal is the " + animals[2] + "."   
print(message)
My favorite animal is the panda.

四、修改列表元素

1.修改

修改列表元素的语法和访问列表元素的语法相似。 通过指定列表名和要修改元素的索引值(index)从列表中获取单个元素,再映射1个新值。

代码语言:javascript
复制
fruit = ['葡萄','草莓','大鸭梨','菠萝']
fruit[2] = '大西瓜'
fruit
# ['葡萄', '草莓', '大西瓜', '菠萝']

五、添加

1.append(): 末尾单一元素添加

列表名.append( 想要添加的元素 )

代码语言:javascript
复制
'''
    功能: 向列表中添加元素,**每次只能加一个元素,并且是往列表的末尾添加数据**
        (也可理解为追加、排队增加)。
          Append object to the end of the list.
    
    参数: 想要添加的元素。
    
    返回值: 添加完成后的列表。
'''
① 追加1个元素
代码语言:javascript
复制
num = [1,2,3,4,5]
num.append(6)
num
# 会发现参数 6 被添加到列表的末尾。
② 追加多个元素(可迭代对象)

若是我们直接添加多个元素,Python会向我们报错TypeError: append() takes exactly one argument (2 given),也就是说append()方法1次只能添加一个参数,那么如果我们就想添加多个元素该如何操作? 用可迭代对象进行添加多个元素

Ⅰ.元组
代码语言:javascript
复制
nums = [1,2,3,4,5,6]
nums.append( (7,8) )
print(nums)
'''
    [1, 2, 3, 4, 5, 6, (7, 8)]
'''
Ⅱ.列表
代码语言:javascript
复制
nums = [1,2,3,4,5]
nums.append(["思齊","永远18岁"])
print(nums)
'''
    [1, 2, 3, 4, 5, ['思齊', '永远18岁']]
'''
Ⅲ.字典
代码语言:javascript
复制
nums = [1,2,3,4,5]
nums.append({"姓名":"思齊","年龄":"永远18岁"})
print(nums)
'''
    [1, 2, 3, 4, 5, {'姓名': '思齊', '年龄': '永远18岁'}]
'''
③ 优点

方法append()让动态地创建列表易如反掌,例如,你可以先创建一个空列表,再使用一系列的append()添加元素,因为我们经常要等程序运行后,才知道用户要在程序中存储哪些数据。 为控制用户,可首先创建一个空列表,用于存储用户将要输入的值,然后将用户提供的每一个新值附加到列表中。

2.extend(): 末尾多元素添加

列表名.extend( [元素1,元素2,...] )

代码语言:javascript
复制
'''
    功能: 可向列表中添加多个元素,但是在**列表末尾添加**。
         
    参数: 
        ① 可迭代对象: 将想要添加的元素以 列表 或 元组 形式传入。
                
    返回值: 添加完成后的列表。
'''
① 参数为可迭代对象

一定要注意,extend()的参数是可迭代对象。 和append()方法一样,如果我们直接在方法的括号里添加多个元素,Python还是会向我们报错TypeError: extend() takes exactly one argument (2 given).extend(iterable, /) method of builtins.list instance Extend list by appending elements from the iterable.,不是说append()可以添加多个元素吗?这是为什么呢?原因就在于extend() 接收可迭代对象。

Ⅰ.传入元组
代码语言:javascript
复制
nums = [1,2,3,4,5]
nums.extend( (9,10) )
print(nums)
'''
    [1, 2, 3, 4, 5, 9, 10]
    向extend()传入一个元组,添加成功。
'''
Ⅱ.传入列表
代码语言:javascript
复制
nums = [1,2,3,4,5]
nums.extend( [7,8] )
print(nums)
'''
    [1, 2, 3, 4, 5, 7, 8]
    向extend()传入一个列表,添加成功。
'''
Ⅲ.传入字典(不可取)
代码语言:javascript
复制
nums = [1,2,3,4,5]
nums.extend( {"姓名":"思齊","年龄":"永远18岁"} )
print(nums)
'''
    [1, 2, 3, 4, 5, '姓名', '年龄']
'''
如果用 + 只是临时添加。

向列表传入一个字典是不可取的,因为会造成数据丢失,从上述结果可看到,只是把键名取出,而键值被省略。

3.insert():任意位置添加

insert(索引,值)

代码语言:javascript
复制
'''
    功能: 可向列表任意位置添加元素。
              
    参数: 
        ① 索引:列表中的位置。 
        ② 值:在这个位置添加什么元素。
    
    返回值: 添加完成后的列表。
'''

insert(index, object, /) method of builtins.list instance.Insert object before index.
① 向列表任意位置添加单个元素
代码语言:javascript
复制
num = [1,2,3,4,5]
num.insert(0,0)
num
② 向列表任意位置添加多个元素
代码语言:javascript
复制
num = [1,2,3,4,5]
num.insert(5,[6,7])
num
# outout: [1, 2, 3, 4, 5, [6, 7]]

num.insert(6,[8,9,10])
num
# outout: [1, 2, 3, 4, 5, [6, 7], [8, 9, 10]]
Ⅰ.多个元素被看作一个整体

其实,insert()方法添加多个元素,并不是实际意义上的添加多个元素,而是添加的多个元素被看成一个整体

六、删除

我们经常需要从列表中删除一个或多个元素。例如:玩家将游戏中的一个小怪兽消灭后,你很可能要将其从存活的小怪兽列表中删除;当用户在你创建的web应用中注销其账户时,你需要将该用户从活跃用户列表中删除。你可以根据位置或值来删除列表中的元素

1.使用del语句删除元素

如果知道要删除的元素在列表中的位置,可使用del语句。 del 是一个语句,不是一个列表的方法,所以不需要在 del 后面加上小括号()。 del 加列表名,可以删除整个列表del 加位置索引,可以删除该位置上的元素

(1)怎么做?
① 删除整个列表
代码语言:javascript
复制
del fruits
② 删除指定位置上的元素
代码语言:javascript
复制
fruits = ['葡萄','草莓','大鸭梨','菠萝']
del fruits[1]   # 删除草莓
③ 连续删除
代码语言:javascript
复制
fruits = ['葡萄','草莓','大鸭梨','菠萝']
del (fruits[1],fruits[2])

# 删除了草莓、菠萝,先删除的是fruits中索引为1的,接着再删除新列表中索引为2的。
(2)永久性删除

使用del语句将值从列表中删除后,你就无法再访问它了。

2.pop():先查出来在删掉,在数据库有用

有时候,你要将元素从列表中删除,并接着使用它的值。 例如:你可能需要获取刚被消灭的小怪兽的x和y坐标,以便在相应的位置显示爆炸效果;在Web应用程序中,你可能要将用户从活跃成员列表中删除,并将其加入到非活跃成员列表中。 方法pop()默认删除列表末尾的元素,并让你能够接着使用它。该术语弹出(pop)就源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。

列表名.pop() 或 列表名.pop( 索引值 )

代码语言:javascript
复制
'''
    功能: 默认删除最后一个元素,或删除指定元素。 

    参数: 
        ① 不写值,默认删除最后一个。
        ② 索引值: 加上一个索引值作为参数的时候,会弹出这个索引值对应的元素。     

    返回值: 删除完成后的列表。
'''   
pop(index=-1, /) method of builtins.list instance
            Remove and return item at index (default last).
         Raises IndexError if list is empty or index is out of range.
① 默认删除最后一个
代码语言:javascript
复制
chinas = ['凤凰','麒麟','玄武','白虎','青龙']
a = china.pop()
print(a)
print(china)
'''
    青龙
    ['凤凰', '麒麟', '玄武', '白虎']
'''
② 根据索引值删除
代码语言:javascript
复制
china.pop(3)
china
# ['凤凰', '麒麟', '玄武']

3.remove(): 删除指定元素

使用remove()删除元素,并不需要知道这个元素在列表中的具体位置,只需要知道该元素存在于列表中即可若要删除的东西在列表中根本不存在,程序就会报错。 remove() 并不能指定删除某个位置的元素,这需要用 del 实现。

列表名.remove( 元素1 )

代码语言:javascript
复制
remove(元素值)
'''
    功能: 删除指定元素。
              
    参数: 
        ① 列表中存在的元素。
    
    返回值: 删除完成后的列表。
'''
① 只删除指定的第一个

只删除指定的第一个值,如果要删除的值在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

代码语言:javascript
复制
fruits = ['葡萄','菠萝','草莓','大鸭梨','菠萝']
fruits.remove('菠萝')
fruits
# output: ['葡萄', '草莓', '大鸭梨','菠萝']
② 删除不存在的元素
代码语言:javascript
复制
python
fruits = ['葡萄','菠萝','草莓','大鸭梨','菠萝']
fruits.remove('芒果')
fruits

# ValueError: list.remove(x): x not in list
③ 删除时也可接着使用该值

在定义列表后,先将值存储在变量中,接着,用这个变量来告诉Python将哪个值从列表中删除,最后,在列表中该值被删除,但它还存储在变量中。

代码语言:javascript
复制
python
fruits = ['purple','菠萝','草莓','大鸭梨','菠萝']
print(fruits)
fruit = fruits[0]
fruits.remove(fruit)
print(fruits)
print("\nA " + fruit.title() + " is too expensive for me.")
'''
    ['purple', '菠萝', '草莓', '大鸭梨', '菠萝']
    ['菠萝', '草莓', '大鸭梨', '菠萝']

    A Purple is too expensive for me.
'''

4.clear():清空列表中所有元素

列表名.clear()

代码语言:javascript
复制
python
'''
    功能: 清空列表中所有元素。 

    参数: 无。      

    返回值: 空列表。
'''   
① 怎么做?
代码语言:javascript
复制
python
fruit = ['葡萄','草莓','大鸭梨','菠萝']
fruit.clear()

5.方法的选择

当我们不确定该选择del语句、pop()、remove()中的哪一个的时候,我们可以按照以下一个简单判断标准:若是我们要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;若是我们在删除元素之后还想继续使用它,就是用pop()或remove()方法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、列表
  • 二、定义列表
    • 1.[]中括号
      • (1)创建空列表
      • (2)列表中嵌套列表
    • 2.list()方法
      • (1)创建空列表
      • (2)将字符串中的每个字符迭代存放进列表
      • (3)将元组中的每个元素迭代存放进列表
      • (4)与range()结合生成数字列表
  • 三、列表的访问
    • 1.访问列表元素
      • (1)示例
    • 2.索引
      • (1)索引为负值
    • 3.使用列表中的各个值
    • 四、修改列表元素
      • 1.修改
      • 五、添加
        • 1.append(): 末尾单一元素添加
          • 2.extend(): 末尾多元素添加
            • 3.insert():任意位置添加
            • 六、删除
              • 1.使用del语句删除元素
                • (1)怎么做?
                • (2)永久性删除
              • 2.pop():先查出来在删掉,在数据库有用
                • 3.remove(): 删除指定元素
                  • 4.clear():清空列表中所有元素
                    • 5.方法的选择
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档