Python基础--列表、元组
一、什么是列表、元组
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['chenshifeng', 'abhui', 1992, 1995]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
print(list1)
print(list2)
print(list3)
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
如何访问列表里的值呢?
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
list1 = ['chenshifeng', 'anhui', 1992, 1995]
list2 = [1, 2, 3, 4, 5,6 ]
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
以上代码的输出结果为:
list1[0]: chenshifeng
list2[1:5]: [2, 3, 4, 5]
Python 的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号。其他方法或功能基本一样,不同的是,元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
tup1 = (50)
print(type(tup1)) # 不加逗号,类型为整型 tup1 = (50,)
print(type(tup1)) # 加上逗号,类型为元组
结果为
<class 'int'>
<class 'tuple'>
二、如何更新或修改列表数据
1、通过下标的方式更新数据
list1 = ['chenshifeng', 'anhui', 1992, 1995]
print(list1)
list1[1] = '一个90后的测试之路'
print(list1)
结果为:
['chenshifeng', 'anhui', 1992, 1995]
['chenshifeng', '一个90后的测试之路', 1992, 1995]
2、使用append()增加数据
list1 = ['chenshifeng', 'anhui', 1992, 1995]
print(list1)
list1.append('一个90后的测试之路')
print(list1)
结果为:
['chenshifeng', 'anhui', 1992, 1995]
['chenshifeng', 'anhui', 1992, 1995, '一个90后的测试之路']
使用append()方法只能在列表的最后增加数据
3、使用 del 语句来删除列表的的元素
list1 = ['chenshifeng', 'anhui', 1992, 1995]
print(list1)
del list1[2]#指定要删除的列表的下标
print(list1)
结果为:
['chenshifeng', 'anhui', 1992, 1995]
['chenshifeng', 'anhui', 1995]
4、通过remove()方法删除元素
list1 = ['chenshifeng', 'anhui', 1992, 1995,1992]
print(list1)
list1.remove(1992)
print(list1)
结果为:
['chenshifeng', 'anhui', 1992, 1995, 1992]
['chenshifeng', 'anhui', 1995, 1992]
使用该方法,如果匹配的数据有多个,只会删除下标最靠前的一个数据
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
tup1 = ('chenshifeng', '90后')
tup2 = (90,88.88) # 以下修改元组元素操作是非法的。
# tup2[0] = 100 # 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)
结果为
('chenshifeng', '90后', 90, 88.88)
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
tup = ('chenshifeng', '90后', 1995, 2000)
print (tup)
del tup;#元组不能删除指定元素,只能全部删除
print (tup)
以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
('chenshifeng', '90后', 1995, 2000)
Traceback (most recent call last):
File "D:/pythoncode/test1.py", line 12, in <module>
print (tup)
NameError: name 'tup' is not defined
三、Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
print(len([1, 2, 3]))#计算列表长度
print([1, 2, 3] + [4, 5, 6])#组合两个列表
print(['Hi!'] * 4)#复制列表元素
print(3 in [1, 2, 3])#判断元素是否在列表中,返回布尔值
#遍历列表元素
for x in [1, 2, 3]:
print(x, end=" ")
运行结果为:
3
[1, 2, 3, 4, 5, 6]
['Hi!', 'Hi!', 'Hi!', 'Hi!']
True
1 2 3
Process finished with exit code 0
以上操作符用于适用于元祖,不再举例
四、嵌套列表
使用嵌套列表即在列表里创建其它列表
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
print(x)
print(x[0])
print(x[0][1])
运行结果:
[['a', 'b', 'c'], [1, 2, 3]]
['a', 'b', 'c']
b
以上嵌套同样也适用于元祖
五、列表函数&方法
函数:
len(list):列表元素个数
max(list):返回列表元素最大值
min(list):返回列表元素最小值
list(seq):将元组转换为列表
list1 = ['chenshifeng', 'anhui','fuyang','yingshang','liushipu']
seq = ('chenshifeng', 'anhui','fuyang','yingshang','liushipu')
print(len(list1))#列表元素个数
print(max(list1))#返回列表元素最大值
print(min(list1))#返回列表元素最小值
print(list(seq))#将元组转换为列表
执行结果为:
对于元祖来说,可以将列表转换为元祖
list = ['chenshifeng', 'anhui','fuyang','yingshang','liushipu']
tuple = tuple(list) #将列表转换为元组。
print(tuple)
执行结果为
('chenshifeng', 'anhui', 'fuyang', 'yingshang', 'liushipu')
方法:
list.append(obj) : 在列表末尾添加新的对象
list.count(obj) : 统计某个元素在列表中出现的次数
list.extend(seq) : 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) : 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) : 将对象插入列表
list.pop(obj=list[-1]) :移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) :移除列表中某个值的第一个匹配项
list.reverse() :反向列表中元素
list.sort(reverse=True)#排序,默认是升序,写上reverse=True就是降序了
list.clear() :清空列表
list.copy() :复制列表
list = ['chenshifeng', 'anhui','fuyang','yingshang','liushipu']
seq = ['zhejiang','hangzhou']
list.append('anhui') #在列表末尾添加新的对象
print(list)
count = list.count('anhui') #统计某个元素在列表中出现的次数
print(count)
list.extend(seq) #在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
print(list)
index = list.index('anhui')#从列表中找出某个值第一个匹配项的索引位置
print(index)
list.insert(1, '90后')#将对象插入列表
print(list)
list.pop()#移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
print(list)
list.remove('liushipu')#移除列表中某个值的第一个匹配项
print(list)
list.reverse()#反向列表中元素
print(list)
list.sort()#对原列表进行排序
print(list)
list.copy()#复制列表
print(list)
list.clear()#清空列表
print(list)
结果为
['chenshifeng', 'anhui', 'fuyang', 'yingshang', 'liushipu', 'anhui']
2
['chenshifeng', 'anhui', 'fuyang', 'yingshang', 'liushipu', 'anhui', 'zhejiang', 'hangzhou']
1
['chenshifeng', '90后', 'anhui', 'fuyang', 'yingshang', 'liushipu', 'anhui', 'zhejiang', 'hangzhou']
['chenshifeng', '90后', 'anhui', 'fuyang', 'yingshang', 'liushipu', 'anhui', 'zhejiang']
['chenshifeng', '90后', 'anhui', 'fuyang', 'yingshang', 'anhui', 'zhejiang']
['zhejiang', 'anhui', 'yingshang', 'fuyang', 'anhui', '90后', 'chenshifeng']
['90后', 'anhui', 'anhui', 'chenshifeng', 'fuyang', 'yingshang', 'zhejiang']
['90后', 'anhui', 'anhui', 'chenshifeng', 'fuyang', 'yingshang', 'zhejiang']
[]
对于元祖,仅支持count、index方法
六、列表生成器
Python中,列表可以使用for循环生成列表,先看一下例子
例1、
i = [0,1,2,3,4,5,6]
print ([ x*2 for x in i] )
结果为
[0, 2, 4, 6, 8, 10, 12]
上面的例子表示把列表i的每个元素*2,也可以直接用 print ([ x*2 for x in range(6)] )实现,关于range函数后续再讲。
例2、
i = [x for x in range (20) if not x % 2]
print(i)
结果为
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
这是个编程语句,意思是输出20以内除以2无余数的数字,即偶数。有些人用于QQ签名等,是隐晦的表达“求偶”之意
Python基础--列表、元组的更多相关文章
- python基础-列表元组字典
1.列表和元组 列表可以对数据实现最方便的存储.修改等操作 names=["Alex","tenglan","Eric","Rai ...
- Python基础------列表,元组的调用方法
Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...
- python基础深入(元组、字符串、列表、字典)
python基础深入(元组.字符串.列表.字典) 一.列表 1.追加 >>>list = [1,2,3,4] #用于在列表末尾添加新的对象,只能单个添加,该方法无返回值,但是会修改原 ...
- Python基础-列表、元组、字典、字符串
Python基础-列表.元组.字典.字符串 多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...
- python基础数据类型--元组(tuple)
python基础数据类型--元组(tuple) 一.元组的定义和特性 定义:与列表相似,只不过就是将[ ] 改成 ( ) 特性:1.可以存放多个值 2.不可变 3.按照从左到右的顺序定义元组元素,下标 ...
- python基础——列表生成式
python基础——列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4 ...
- python基础——列表推导式
python基础--列表推导式 1 列表推导式定义 列表推导式能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 2 列表推导式语法 基本格式如下: [expr for va ...
- Python基础-列表_元组_字典_集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Python基础——列表、元组操作
列表.元组操作 列表: 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0 ...
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
随机推荐
- cogs 2221. [SDOI2016 Round1] 数字配对
★★ 输入文件:pair.in 输出文件:pair.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描述] 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两 ...
- 常用模块之hashlib,subprocess,logging,re,collections
hashlib 什么是hashlib 什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,M ...
- 不到 200 行代码,教你如何用 Keras 搭建生成对抗网络(GAN)【转】
本文转载自:https://www.leiphone.com/news/201703/Y5vnDSV9uIJIQzQm.html 生成对抗网络(Generative Adversarial Netwo ...
- 如何创建自己的python包
写过python的人都知道python最方便也最牛的地方就是它有无数的第三方lib可以直接拿来使用,可以让编写代码变的更容易. 长用的安装第三方lib的方法有easy_install和pip,这两个的 ...
- Java命令使用 jmap,jps,jstack,jstat,jhat,jinfo
Jmap:可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等 Jmap是一个可以输出所有内存中 ...
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元)题解
题意:5*6的格子,你翻一个地方,那么这个地方和上下左右的格子都会翻面,要求把所有为1的格子翻成0,输出一个5*6的矩阵,把要翻的赋值1,不翻的0,每个格子只翻1次 思路:poj 1222 高斯消元详 ...
- 【Git安装】centos安装git
1 yum install git 安装后的默认存放地点/usr/bin/git
- javaweb项目运行时生成的Servers项目作用
在javaweb项目中,看到有一个Servers的项目,发现每新增一个项目,就会在Servers项目中新生成一些对应的项目文件. 如图所示: 每个项目都有对应的文件.文件的结构图如下: 解释一:Ser ...
- C语言优先级
条件1 && 条件2,如果条件1为假,则条件2语句不执行,因为能判断该表达式为假 条件1 || 条件2,如果条件1为真,则条件2语句不执行,因为能判断该表达式为真 优先级 运算符 名称 ...
- MYSQL语句:创建、授权、查询、修改、统计分析等 一 用户的创建、权限设置、删除等
MYSQL语句:创建.授权.查询.修改.统计分析.. 一.用户的创建.权限设置.删除等 1.首先链接MySQL操作 连接格式:mysql -h 主机地址 -u 用户名 -p 用户密码 (注-u与roo ...