Python 列表(List)

Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据。在实际编程中,我们要经常组织由很多基本数据组成的集合,这些集合的不同组织方式就是:数据结构,今天讲的是数据结构中的Python list(列表)。数据结构就是一些数据组合得到的“复合”数据类型。

Python内置的数据结构有:

  • 列表(list)
  • 元组(tuple)
  • 字典(dict)
  • 集合(set)

在Python语言中,以上4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。

一、什么是列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

Python有6个序列的内置类型,但最常见的是列表和元组。

序列都可以进行的操作包括索引,切片,加,乘,检查成员。

此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

列表的数据项不需要具有相同的类型

(1)创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

# 定义列表
name = ['Tom','Jack','John']
pet = ['cat','dog','bird']# 打印列表
print(name)
print(pet)

(2)用索引访问列表元素

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:

# 通过索引读取列表中的元素,索引从0开始,-1代表最后一个元素print(name[0])     #查看列表中第一个
print(pet[2])      #查看列表中第二个
print(name[-1])    #查看列表中最后一个
print(pet[-2])    #查看列表中倒数第二个
print (name[0:2])  #查看索引2之前的元素

二、基本操作

1、通过素引获取元素,进行修改

#修改列表的元素
name[1] = 'Sean'   #修改name列表,索引1的内容为Sean
print(name)        #打印列表

2、 向列表里面加元素

向python列表里面添加元素主要有三种方法:

(1)append()

append()对于列表的操作主要实现的是在特定的列表最后添加一个元素,并且只能一次添加一个元素,并且只能在列表最后;

name.append(元素A)

# 在列表末尾添加新元素
name.append('Bob')
print(name)

(2)extend()

extend()对于列表的操作主要实现的是对于特定列表的扩展和增长,可以一次添加多个元素,不过也只能添加在列表的最后;

name.extend([元素A,元素B,……])

name.extend(['Xgp','Wsd'])
print(name)

(3)insert()

insert()对于列表的操作主要是在列表的特定位置添加想要添加的特定元素,比较常用,这里的特定位置是指元素所在列表中的位置索引号,需要注意的是这里的索引号都是从0开始的,不是从1开始的,这个大家需要特别注意。

pet.insert(A,元素B):表示在列表m里面的第A+1处加入元素B

# 在列表指定位置添加新元素
print(pet)
pet.insert(0,'penguin')   #在列表最前面添加数据
print(pet)
pet.insert(-2,'pig')      #在列表倒数第三个添加数据
print(pet)

3、删减列表中的一些元素;

与之前python列表的添加元素相对,删减列表里面的一些元素也有三种方法:

(1)del pet[n]

它的作用是删除掉列表里面的索引号位置为n 的元素,这里需要注意的是del是一种操作语句。

del m[n]

# 根据索引从列表中删除元素
print(pet)
del pet[0]      #删除开头的元素
print (pet)

(2)pet.pop()

它的作用是将列表m的最后一个元素返回,并且在此基础上进行删除掉

Temp=pet.pop() %这里temp就会直接等于吗列表里最后一个元素。

Print(pet) %这里再次输出m的时候已经是删掉最后一个元素的m列表

pop():弹出列表末尾的元素

print(pet)
new_pet=pet.pop()
print(new_pet)

弹出指定位置的元素

# 弹出指定位置的元素
print(pet)
pet.pop(2)
print(pet)

(3)pet.remove()

m.remove的作用是移除掉列表m里面的特定元素;

m.remove(元素A)

# 根据元素的值进行删除:remove()
print(pet)            #查看源列表
pet.remove('cat')     #删除cat
print(pet)            #打印列表

三、排序

(1)永久排序(正索引,从头到尾)

sort()排序方法:此函数方法对列表内容进行正向排序,排序后的新列表会覆盖原列表(id不变),也就是sort排序方法是直接修改原列表list排序方法。

(2)临时排序(正索引,从头到尾)

sorted()方法:即可以保留原列表,又能得到已经排序好的列表

(3)倒序(从头到尾从尾到头)

reverse列表反转排序:是把原列表中的元素顺序从左至右的重新存放,而不会对列表中的参数进行排序整理。如果需要对列表中的参数进行整理,就需要用到列表的另一种排序方式sort正序排序。

(4)列表长度

len() 方法返回列表元素个数。

操作

# 定义列表:汽车的品牌
print('原始排序:')
brand = ['audi','bmw','toyota','luhu']
print(brand)#临时排序
print('临时排序:')
print(sorted(brand))# 永久排序: sort()
print('正序排序:')
brand.sort()
print(brand)# 倒序排序
print('倒序排序:')
brand.sort(reverse=True)
print(brand)# 获取列表长度
print('列表长度:')
print(len(brand))

四、小练习

列表练习(一)

  • 定义一个列表,存储5个科目名称
kemu = ['语文','数学','英语','地理','生物']
print(kemu)

  • 新增科目(末尾新增)
kemu.append('化学')
print(kemu)

  • 修改科目
kemu[2] = '计算机'
print(kemu)

  • 删除科目,并且在打印科目列表的时候,能够显示删除了哪个科目
print(kemu)
new_kemu=kemu.pop(3)
print(new_kemu)

  • 删除第2个科目
kemu.pop(1)
print(kemu)

  • 指定位置新增
kemu.insert(0,'科学')
print(kemu)

  • 删除指定名称的科目
kemu.remove('生物')
print(kemu)

列表练习(二)

  • 将5个城市的名称存储到列表中,并且保证名称不是按照字母顺序排列的
city = ['北京','上海','广州','深圳','山西']
print(city)

  • 打印出原始的城市列表信息
print(city)

  • 使用sorted()方法按字母顺序打印城市列表,但是不要修改列表元素的顺序
print(sorted(city))

  • 打印该列表,确认城市名称排列顺序没有被修改
print(city)

  • 使用sort()方法排列城市名称,确保永久性修改排列顺序
city.sort()
print(city)

五、进阶操作

(一)遍历列表

1、for循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

语法:

for循环的语法格式如下:

for iterating_var in sequence:statements(s)

流程图:

(1)简单的for循环

# 定义一个列表
names = ['张三','李四','王五','赵六','田七']
zhang_san = names[0]
li_si = names[1]
wang_wu = names[2]
print(zhang_san+" "+li_si+" "+wang_wu)
# for循环
for name in names:print(name)

注意: name 这个变量是在 for 循环中定义的,意思是,依次取出 names中的每一个元素,并把元素赋值给 name,然后执行for循环体。

(2)多重for循环

<1>直角三角形

# 打印直角三角形# 外层循环控制行数
# 内层循环控制列数
# 外层循环执行1次,内层循环执行1轮for i in range(1,10):for j in range(i):print(j+1,end='')print()

<2>九九乘法表

# 打印九九乘法表
for i in range(1, 10):for j in range(i):print(str((j+1))+"x"+str(i)+"="+str(i*(j+1)),end=' ')print()

(二)创建数值类表

1、range() 的使用

range ( ) 为 Python 的自有类,range() 带有内置的迭代方法iter() 和 next() ,它是一个可迭代对象,我们可以通过 for 访问 range() 创建的迭代器。

range 类初始化参数说明:

  • range(stop) 从0开始到stop结束(不包含 stop)返回一个产生整数序列的迭代对象
  • range(start, stop[, step]) 从 start 开始到 stop 结束(不包含 stop)返回一个整数序列的迭代对象, step 为他的步长

(1) 循环输出1-10之间的数字

for num in range(11):print(num,end=" ")

(2)输出1-10之间的偶数

for num in range(2,11,2):print(num,end=" ")

(3) 输出1-10之间的奇数

for num in range(1,11,2):print(num,end=" ")

(4)输出1-10之间的奇数的平方

for num in range(1,11,2):print(num**2,end=" ")

(5)创建一个数字列表

numbers = list(range(1,11))
print(numbers)

2、数字列表的简单统计(计算)

Python包含以下函数:

序号函数1cmp(list1, list2)比较两个列表的元素2len(list)列表元素个数3max(list)返回列表元素最大值4min(list)返回列表元素最小值5list(seq)将元组转换为列表

# 数字列表的最大值、最小值、总和
print(max(numbers))    #最大值
print(min(numbers))    #最小值
print(sum(numbers))    #总值

(三)Python列表切片

切片是Python序列的重要操作之一,适用于列表、元组、字符串、range对象等类型。切片使用2个冒号分隔的3个数字来完成:第一个数字表示切片的开始位置,默认为0,第二个数字表是切片的截止(但不包含)位置(默认为列表长度),第三个数字表示切片的步长(默认为1),当步长省略时,顺便可以省略最后一个冒号。

可以使用切片来截取列表中的任何部分,得到一个新列表,也可以通过切片来修改和删除列表中部分元素,甚至可以通过切片操作为列表对象增加元素。与使用下标访问列表元素不同,切片操作不会因为下标越界而抛出异常,而是简单地在列表尾部截断或者返回一个空列表,代码具有更强的健壮性。# 切片

# 创建一个列表
pets = ['cat','dog','duck','pig']
print(pets)

1、读取列表中2和3的元素

pets[1:3]

2、读取列表中1到4的元素

pets[0:4]

3、读取列表中的第一个元素

pets[0]

4、读取列表中的最后一个元素

pets[-1]

5、读取列表中,从第二个元素开始的所有元素

pets[1:]

6、读取列表中,从第一个元素开始的所有元素

pets[0:]

7、读取列表中,从倒数第三个元素开始的所有元素

pets[-3:]

8、循环输出列表中,从倒数第三个元素开始的所有元素

for pet in pets[-3:]:print(pet,end=" ")

9.读取列表中,从第三个开始的所有数据,并组合一下数据

games = ['王者','吃ji','抢滩登陆']
# friend_games = ['王者','吃ji']
friend_games = games[:2]
print('我喜欢的游戏有:'+str(games))
print('我朋友喜欢的游戏有:'+str(friend_games))

(四)元组

  • Python 的元组与列表类似,不同之处在于元组的元素不能修改。
  • 元组使用小括号,列表使用方括号。
  • 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

1、定义元组

numbers = (4,5,6)   #定义元组
print(numbers[0])   #查看元组中第一个元素

2、循环输出numbers元组中的数据

for num in numbers:print(num,end=" ")

3、修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:

print(numbers)
numbers = (0,1,2)
print(numbers)

4、删除元组

print(numbers)     #查看元组
del numbers        #删除元组
print ("删除后的元组 numbers : ")
print(numbers)     #因为删除了元组,所以看不到了,就会报错

元组运算符

*与字符串一样,元组之间可以使用 + 号和 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式结果描述len((1, 2, 3))3计算元素个数(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)连接('Hi!',) * 4('Hi!', 'Hi!', 'Hi!', 'Hi!')复制3 in (1, 2, 3)True元素是否存在for x in (1, 2, 3): print (x,)1 2 3迭代

元组索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

元组:

L = ('Google', 'Taobao', 'Runoob')

成长离不开与优秀的伙伴共同学习,如果你需要好的学习环境,好的学习资源,项目教程,零基础学习,这里欢迎每一位热爱Python的小伙伴,点击:Python学习圈

concurrentbag 删除指定元素_Python 列表,for循环,元组的使用(修改、添加、删除、排序、切片)相关推荐

  1. concurrentbag 删除指定元素_Python实现列表索引批量删除的5种方法_python

    这篇文章主要介绍了Python实现列表索引批量删除的5种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 最近用Java做项目 ...

  2. Redis中列表list数据类型(增加(在左侧、右侧或指定元素前后插入数据)、获取(获取表内指定范围的元素)、更新(获取指定索引位置的元素值)、删除(删除指定元素、count))

    列表的元素类型为string 按照插⼊顺序排序 1. 增加 1.1 在左侧插⼊数据 lpush key value1 value2 ... 例1:从键为a1的列表左侧加⼊数据a . b .c lpus ...

  3. vue.js 删除指定元素_vue.js删除动态绑定的radio的指定项

    上图效果,动态添加绑定radio选项,然后也可以动态删除,右边编辑器删除,左边的视图也对应的删除. 视图代码 view: " " + "{{option.text}}&q ...

  4. C++ vector容器 find erase的使用:查找并删除指定元素

    概念:容器.迭代器.算法 STL包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优缺点,不同的容器反映出程序设计的不同需求.容器自身可能由数组或链表实现,或者容器中的每个元 ...

  5. Java 集合List、Set、HashMap操作二(Map遍历、List反向、Set删除指定元素,集合只读、TreeMap操作、List转Array、List移动元素)

    Map遍历 import java.util.Map; import java.util.HashMap; import java.util.HashSet; import java.util.Ite ...

  6. Python入门--列表元素的判断及遍历,判断指定元素在列表中是否存在,列表元素的遍历,

    #列表中元素查询操作 #判断指定元素在列表中是否存在 #元素 in 列表名 #元素 not in 列表名 #列表元素的遍历(遍历:就是将列表中的元素依次输出) #for 迭代变量 in 列表名:for ...

  7. java list移除符合条件的元素_java List删除指定元素的三种方法

    java List删除指定元素有3种方法,分别是普通for循环,增强for循环以及原生的Iterator迭代器循环来删除list中指定的某个元素,非常的简单. 1:普通for循环遍历list,并删除指 ...

  8. List删除指定元素以及List删除与另一List相同元素的方法

    List删除指定元素 在List类中,提供了删除元素的remove()方法,有如下两种传参方式 1.根据index删除,会删除指定位置的元素,源码如下 public E remove(int inde ...

  9. Redis中有序集合zset数据类型(增加(添加元素)、获取(获取指定范围元素、返回权值在min和max之间的成员、返回成员member的score值)、删除(删除指定元素和指定权值范围的元素))

    sorted set,有序集合 元素为string类型 元素具有唯⼀性,不重复   [值不能重复] 每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序 说明:没有修 ...

最新文章

  1. 基于TransactionScope类的分布式隐式事务
  2. 问题 “No mapping found for HTTP request with URI [/fileupload/upload.do]” 的解决
  3. 网站seo不能错过这几点!
  4. [Spring cloud 一步步实现广告系统] 12. 广告索引介绍
  5. Doubly Linked List,( Aizu - ALDS1_3C )
  6. python的setting怎么找_python-DJANGO_SETTINGS_MODULE如何配置
  7. java第六章工具包6.2.Collection Streams 2020.4.7
  8. 042、用volume container 共享数据 (2019-03-05 周二)
  9. 4部“教材级”纪录片,有生之年必看系列!
  10. python循环post请求_循环post请求太多
  11. html-body相关标签
  12. Spring使用AspectJ开发AOP
  13. 大数据概论ppt_解读 | 货拉拉搬家大数据报告(30页PPT干货)
  14. 一个“想忘带东西都难”的出行指南
  15. VC 无标题栏对话框移动
  16. 重磅!阿里推出国产开源的 JDK!
  17. Win7下无法安装CDC Comms Interface驱动的朋友进
  18. dev-c++为什么使用调试时提示[error]ld returned 1 exit status?
  19. 企业发布重要通知短信收不到该怎么办
  20. python web开发-Python Web开发从入门到精通

热门文章

  1. 流行前沿的暗黑APP主题UI设计素材模板
  2. UI设计师必定需要了解的sketch素材
  3. 计算机设备管理程序在哪,怎么打开设备管理器
  4. 亚麻纤维截面形态_纺织品知识点--纺织纤维的分类get
  5. easyui打开新的选项卡_Jquery Easyui选项卡组件Tab使用详解(10)
  6. 部署项目到Linux服务器步骤
  7. Linux内核深入理解中断和异常(5):外部中断
  8. 网络合作伙伴通信协议指南:NETWORK ASSOCIATES GUIDE TO COMMUNICATIONS PROTOCOLS
  9. Linux驱动开发流程四步走
  10. BSD:Berkeley Software Distribution,伯克利软件套件