1.【Python编程】列表List相关知识及基本操作

1.【Python编程】列表List相关知识

备注: 本教程主要使用Python3.6在jupyter notebook上编程实现。Python环境配置参考《【Python学习】Windows10开始你的Anaconda安装与Python环境管理》或者《【Python学习】纯终端命令开始你的Anaconda安装与Python环境管理》

1.1 列表的基本概念

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。

1.2 列表的创建

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可;或者使用列表推导式。如下所示:

# 创建列表
# 方法1:把逗号分隔的不同的数据项使用方括号括起来
list1 = [0,1,2,3,4,5,6,7,8,9]
# 方法2:使用列表推导式与range函数
list2 = [i for i in range(10)]

# 打印列表
print(list1)
print(list2)

输出为:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

1.3 访问列表中的值

列表的索引有两种形式:从前往后以及从后往前:

  • 从前往后
    list1 = [0,1,2,3,4,5,6,7,8,9]
    索引为0,1,2,3,4,5,6,7,8,9

  • 从后往前
    list1 = [0,1,2,3,4,5,6,7,8,9]
    索引为-10,-9,-8,-7,-6,-5,-4,-3,-2,-1

假设list1有n个元素,则对于i(0=<i<n),有list1[i]=list1[-(n-i)]

# 根据下标索引访问元素
print("list1[0]: ", list1[0]) #第1个元素
print("list1[9]: ", list1[9]) #第10个/最后1个元素
print("list1[-1]: ", list1[-1]) #第10个/最后1个元素
print("list1[-2]: ", list1[-2]) #倒数第2个元素
print("list1[-10]: ", list1[-10]) #倒数第10个元素

输出为:

list1[0]:  0
list1[9]:  9
list1[-1]:  9
list1[-2]:  8
list1[-10]:  0
# 假设list1有n个元素,则对于i(0=<i<n),有
# list1[i]=list1[-(n-i)]
n = len(list1)
print("i","list1[i]","list1[-(n-i)]")
for i in range(n):
    print(i,",",list1[i],",",list1[-(n-i)])

输出为:

i list1[i] list1[-(n-i)]
0 , 0 , 0
1 , 1 , 1
2 , 2 , 2
3 , 3 , 3
4 , 4 , 4
5 , 5 , 5
6 , 6 , 6
7 , 7 , 7
8 , 8 , 8
9 , 9 , 9

1.4 Python列表截取

根据[头下标:尾下标]获取子列表。如果你要实现从列表中获取一段子列表的话,可以使用[头下标:尾下标]来截取相应的列表,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。[头下标:尾下标]获取的子列表包含头下标的元素,但不包含尾下标的元素。

# 根据[头下标:尾下标]获取子列表
print("list1[0:5]: ", list1[0:5])
print("list1[:5]: ", list1[:5])
print("list1[1:5]: ", list1[1:5])
print("list1[5:9]: ", list1[5:9])
print("list1[5:10]: ", list1[5:10])
print("list1[5:]: ", list1[5:])
print("list1[:]: ", list1[:])
print("list1[:-1]: ", list1[:-1])
print("list1[5:-1]: ", list1[5:-1])
print("list1[-2:-1]: ", list1[-2:-1])

输出为:

list1[0:5]:  [0, 1, 2, 3, 4]
list1[:5]:  [0, 1, 2, 3, 4]
list1[1:5]:  [1, 2, 3, 4]
list1[5:9]:  [5, 6, 7, 8]
list1[5:10]:  [5, 6, 7, 8, 9]
list1[5:]:  [5, 6, 7, 8, 9]
list1[:]:  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list1[:-1]:  [0, 1, 2, 3, 4, 5, 6, 7, 8]
list1[5:-1]:  [5, 6, 7, 8]
list1[-2:-1]:  [8]

上述特性可以用下图1形象地表示:
在这里插入图片描述

1.5 Python列表常用函数

list1 = [0,1,2,3,4,5,6,7,8,9]
print("list1的长度:",len(list1))
print("list1的元素最大值:",max(list1))
print("list1的元素最小值:",min(list1))
print("从list1中找出值7第一个匹配项的索引位置",list1.index(7))
# 在列表末尾添加新的对象
print(list1)
print("在列表末尾添加新的对象:10")
list1.append(10)
print(list1)
print("统计元素1在列表list1中出现的次数:",list1.count(1))
print("在list1后追加列表[11,12,13]:")
list1.extend([11,12,13])
print(list1)
print("在list1的第8索引位置插入元素15:")
list1.insert(8,15)
print(list1)
print("移除list1的第8索引位置的元素:")
list1.pop(8)
print(list1)
print("反向list1的元素")
list1.reverse()
print(list1)
print("对list1的元素进行升序排序")
list1.sort(reverse = False)
print(list1)
list1的长度: 10
list1的元素最大值: 9
list1的元素最小值: 0
从list1中找出值7第一个匹配项的索引位置 7
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
在列表末尾添加新的对象:10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
统计元素1在列表list1中出现的次数: 1
在list1后追加列表[11,12,13]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
在list1的第8索引位置插入元素15:
[0, 1, 2, 3, 4, 5, 6, 7, 15, 8, 9, 10, 11, 12, 13]
移除list1的第8索引位置的元素:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
反向list1的元素
[13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
对list1的元素进行升序排序
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

1.6 Python列表推导式

列表推导式是Python构建列表(list)的一种快捷方式,可以使用简洁的代码就创建出一个列表
列表推导式是通过一个可迭代对象(例如:range(15))来生成列表的
列表推导式会遍历后面的可迭代对象,然后按照for前的表达式进行运算,生成最终的列表
如果有if条件语句,for遍历后紧跟着进行条件判断
如果有多个for循环,则最终的数据数量为多个for循环的笛卡尔积
可以进行嵌套的列表推导,与嵌套for循环的原理相同

# 列表推导式
list3 = [i for i in range(15)]
print("list3=",list3)

list4 = [3 * i for i in "python"]
print("list4=",list4)
# 创建一个列表,该列表由0~14的所有偶数组成
list5 = [i for i in range(15) if i%2 ==0] # 带if条件的列表推导式
print("list5=",list5)
# 多个for循环
list6 = [(i, j) for i in range(3) for j in range(4)]
print("list6=",list6)
list3= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
list4= ['ppp', 'yyy', 'ttt', 'hhh', 'ooo', 'nnn']
list5= [0, 2, 4, 6, 8, 10, 12, 14]
list6= [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)]

  1. 《Python 变量类型》. 菜鸟教程. https://www.runoob.com/python/python-variable-types.html ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

YirongChen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值