【“笨办法”学Python】38.列表的操作

38.列表的操作



前言

  列表的基本操作和工作原理。


一、列表的基本操作

  列表(list),是用方括号[ ]括起来的一种数据结构,元素和元素之间用逗号分隔,列表中的元素是可以进行增删查改等一系列操作的,列表通常这样表示:

list = [a, b, c]

1、新建列表

  列表中的数据没有类型的限制,可以是数值型也可以是字符型,还可以混搭。

new_list = [1, 2, 3, 'a', 'b', 'ABC', '加油' ]
type(new_list)	

>>>list									# 查看列表的数据类型

2、增加元素

   列表中增加元素使用append、insert方法:

new_list = [1, 2, 3, 'a', 'b', 'ABC', '加油' ]

new_list.append("你好!")							# 在末尾插入新元素
new_list.insert(1, "Happy")							# 可以在指定位置插入新元素
new_list

>>>[1, 'Happy', 2, 3, 'a', 'b', 'ABC', '加油', '你好!']

   列表中增加列表使用”+”号操作符、extend方法:

a = [1, 2, 3, '45', 'a', '你好!']
b = [1, 2, 'b']
c = a + b

>>>[1, 2, 3, '45', 'a', '你好!', 1, 2, 'b']
a = [1, 2, 3, '45', 'a', '你好!']
b = [1, 2, 'b']
a.extend(b)
a

>>>[1, 2, 3, '45', 'a', '你好!', 1, 2, 'b']

3、删除元素

  列表中元素的删除,可以根据元素值删除(remove方法),也可按索引删除(pop方法)。

a = [1, 2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
a.remove(1)
a

>>>[2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
a = [1, 2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
a.pop(3)
a

>>>[1, 2, 3, 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
a = [1, 2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
del a[-1]
a

>>>[1, 2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2]

4、查找元素

   查找某个元素是否在列表中,以及通过索引访问该元素。

a = [1, 2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
'你好!' in a

>>>True
a = [1, 2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
a[3]

>>>'45'
a = [1, 2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
a[3:]

>>>['45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']

5、修改元素

  对列表中元素的值进行修改,直接查找到位置后赋值。

a = [1, 2, 3, '45', 'a', '你好!']
a[0] = 'A'
a

>>>['A', 2, 3, '45', 'a', '你好!']

6、排序

  sort方法进行升序(默认),参数reverse = True时为降序。

a = [33, 22, 3,5, 23 ]
a.sort()
a

>>>[3, 5, 22, 23, 33]
a = [33, 22, 3,5, 23 ]
a.sort(reverse = True)
a

>>>[33, 23, 22, 5, 3]

7、复制

  copy方法复制列表,得到它的副本,可以在它的副本基础上做修改。

a = [33, 22, 3,5, 23 ]
a.copy()

>>>[33, 22, 3, 5, 23]

8、列表长度

  用len函数求列表长度。

a = [1, 2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
len(a)

>>>12

9、计数

  计数用来统计列表中元素出现的次数。

a = [1, 2, 3, '45', 'a', '你好!', 1, 2, 'b', 1, 2, 'b']
a.count(1)

>>>3

二、列表的工作原理

mystuff = ['world','123', 'abc']
mystuff.append('hello')

  上述代码对列表执行了一个append函数,其在Python内部激发了一个连锁反应,导致mystuff列表发生了一些变化:
(1) Python看到用mystuff之后,于是去查找这个变量。
(2) 一旦找到了mystuff,就会去处理句点 ’ . ’ 这个运算符,而且开始查看mystuff内部的一些变量了。由于mystuff是一个列表,Python便会知道mystuff支持的一些函数。
(3) 接下来开始处理append,Python会将mystuff和append支持的所有函数的名称一一对比,如果确实存在append函数,那么Python就会去使用这个函数。
(4) 接下来处理append后面括号 ‘( )’ 里面的内容,并意识到这是一个函数,,到了这里,它就会正常调用这个函数,不过调用这个函数还要带一个额外的参数才可以。
(5) 这个额外的参数其实质是mystuff,这就是Python的工作原理。真正发生的事情其实是:

append(mystuff, 'hello')

在这里插入图片描述
在这里插入图片描述
  TypeError: test() takes 1 positional argument but 2 were given(test()只可以接收一个参数,实际上给了两个),这意味着把a.test(‘hello’)改成了test(a, ‘hello’),在程序里面没有添加a这个参数。

在这里插入图片描述
在这里插入图片描述


三、列表的作用

在这里插入图片描述

ten_things = "Apple Orange Crows Telephone Light Suger"

print("Wait there are not 10 things in that list.Let's fix that.")

stuff = ten_things.split(" ")
more_stuff = ["Day", "Night", "Song", "Firsbee", "Corn", "Banana", "Girls", "Boys"]

while len(stuff) != 10:
    next_one = more_stuff.pop()
    print("Adding:", next_one)
    stuff.append(next_one)
    print(f"There are {len(stuff)} items now.")

print("There we go:", stuff)

print("Let's do some things with stuff.")

print(stuff[1])
print(stuff[-1])
print(stuff.pop())
print(' '.join(stuff))
print('#'.join(stuff[3:5]))

在这里插入图片描述
  列表是程序员最常用的一种数据结构,数据结构只是组织数据的正式方法,尽管有的数据结构会极度复杂,但也只是在程序中存储数据的一种方式而已,它们所做的事情就是把数据结构化。
  列表就是一种有序的数据结构,可以把要存储的东西放进去,也可以访问其中的元素,访问可以随机,也可通过索引进行线性访问。
  列表的功能(列表数据结构的功能):
(1) 有序的列表
(2) 要存储的东西
(3) 随机访问
(4) 线性
(5) 通过索引


四、列表的应用

  只要能匹配到列表数据结构的有用功能,就可以使用列表:
(1) 如果需要维持次序。这里指的是列表内容的排列顺序,而不是按某个规则排过的顺序的意思。列表不会自动的按规矩排序。
(2) 如果需要通过一个数字来访问内容,要使用从0开始的基数。
(3) 如果需要线性(从头到位)访问内容,这就是for循环的内容。


总结

  以上内容介绍了Python的列表的操作,有关Python、数据科学、人工智能等文章后续会不定期发布,请大家多多关注,一键三连哟(●’◡’●)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器视觉小学徒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值