列表
1.列表概念
List(列表)是python中使用最频繁额数据类型,列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列(所谓嵌套)。列表是写在方括号[]之间、用逗号分隔开的元素列表和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
List 内置了很多方法,例如append()、pop()等等。
注意:
- List 写在方括号之间,元素用逗号隔开。
- 和字符串一样,list可以被索引和切片
- list 可以使用+操作符进行拼接
- List中的元素是可以改变的
2.基本操作
2.1 访问列表中的值
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
#!/usr/bin/python3
list1 = [‘Google’, ‘Runoob’, 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
2.2 更新列表
你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:
#!/usr/bin/python3
list = [‘Google’, ‘Runoob’, 1997, 2000]
print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
2.3.删除列表元素
可以使用del语句来删除列表的元素,如下实例:
#!/usr/bin/python3
list =[‘Google’,‘Runoob’,1997,2000]
print(“原始列表:”,list)
del list[2]
print(“删除第三个元素:”,list)
2.4 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,end="") ,输出结果:1 2 3
2.5 Python列表截取与拼接
python的列表截取与字符串操作类型,如下所示:
L=[‘Google’,‘Runoob’,‘Taobao’]
操作:
Python表达式 , 结果 , 描述
L[2] , ‘Taobao’ , 读取第三个元素
L[-2] , ‘Runoob’ , 从右侧开始读取倒数第二个元素:count from the right
L[1:] , [‘Runoob’,‘Taobao’] , 输出从第二个元素开始后的所有元素
3.列表相关方法
python包含以下方法:
- list.append(obj)在列表末尾添加新的对象
- list.count(obj)统计某个列表中出现的次数
- list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
- list.index(obj)从列表中找出某个值第一个匹配项的索引位置
- list.insert(index.obj)将对象插入列表
- list.pop([index =-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
- list.remove(obj)移除列表中某个值的第一个匹配项
- list.reverse()反向列表中元素
- list.sort(cmp=None.key=None.reverse=False)对元列表进行排序
- list.clear()清空列表
- list.copy()复制列表
元组
1.元祖概念
元祖(tuple)与列表类似,不同之处在于元祖的元素不能修改。元祖写在小括号()里,元素之间用逗号隔开。
string、list 和 tuple 都属于sequence(序列)
注意:
1.与字符串一样,元组的元素不能修改。
2.元组也可以被索引和切片,方法一样。
3.注意构造包含0或1个元素的元组的特殊语法规则
4.元组也可以使用+操作符进行拼接
2.基本操作(创建及不可变性)
2.1 访问元祖
元祖可以使用下标索引来访问元祖中的值,如下实例:
#!/usr/bin/python3
tup1=(‘Google’,‘Runoob’,1997,2000)
tup2=(1,2,3,4,5,6,7)
print(“tup1[0]:”,tup1[0])
print(“tup2[1:5]:”,tup2[1:5])
2.2 修改元祖
元祖中的元素值是不允许修改的,但我们可以对元祖进行连接组合,如下实例:
#!/usr/bin/python3
tup1 = (12, 34.56);
tup2 = (‘abc’, ‘xyz’)
#以下修改元组元素操作是非法的。
#tup1[0] = 100
#创建一个新的元组
tup3 = tup1 + tup2;
print (tup3)
以上实例输出结果:
(12,34,56,‘abc’,‘xyz’)
2.3 删除元祖
元祖中的元素值是不允许删除的,但我们可以使用del语句来删除整个元祖,如下实例:
#!/usr/bin/python3
tup = (‘Google’, ‘Runoob’, 1997, 2000)
print (tup)
del tup;
print ("删除后的元组 tup : ")
print (tup)
以上实例元祖被删除后,输出变量会有异常信息,输出变量会有异常信息,输出如下所示:
删除后的元组 tup :
Traceback (most recent call last):
File “test.py”, line 8, in
print (tup)
NameError: name ‘tup’ is not defined
2.4 元祖运算符
与字符串一样,元祖之间可以使用+号和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元祖。
- 计算元素个数: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
2.5 元组索引,截取
因为元祖也是一个序列,所以我们可以访问元祖中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元组:
L = (‘Google’, ‘Taobao’, ‘Runoob’)
Python表达式 结果 描述
L[2] ‘Runoob’ 读取第三个元素
L[-2] ‘Taobao’ 反向读取:读取倒数第二个元素
L[1:] (‘Taobao’,‘Runoob’) 截取元素,从第二个开始后的所有元素
2.6 元祖内置函数
python元祖包含了以下内置函数:
- len(tuple)计算元祖元素个数
- max(tuple)返回元祖中元素最大值
- min(tuple)
- tuple(seq)将列表转换为元祖
string字符串
1.定义及基本操作(+,*,读取方式)
Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。
实例如下:
#!/usr/bin/python3
str = ‘Runoob’
print (str) # 输出字符串
print (str[0:-1]) # 输出第一个到倒数第二个的所有字符
print (str[0]) # 输出字符串第一个字符
print (str[2:5]) # 输出从第三个开始到第五个的字符
print (str[2:]) # 输出从第三个开始的后的所有字符
print (str * 2) # 输出字符串两次
print (str + “TEST”) # 连接字符串
2.字符串相关方法
2.1 Python访问字符串中的值
python不支持单字符类型,单字符在python中也作为一个字符串使用,python访问子字符串,可以使用方括号来截取字符串,如下实例:
#!/usr/bin/python3
var1=‘Hello World’
var2=“Runoob”
print(“var1[0]:”,var1[0])
print(“var2[1:5]:”,var2[1:5])
2.2 Python字符串更新
你可以截取字符串的一部分并与其他字段拼接,如下实例:
#!/usr/bin/python3
var1=‘Hello World’
print(“已更新字符串:”,var1{:6}+‘Runoob!’)
2.3 Python转义字符
在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:
- 续行符: \(在行尾时)
- 反斜杠符号: \
- 单引号: ’
- 双引号: "
- 响铃: \a
- 退格(backspace): \b
- 转义:\e
- 空:\000
- 换行:\n
- 纵向制表符:\v
- 横向制表符:\t
- 回车:\r
- 换页:\f
- 八进制数,yy代表的字符,例如\o12代表换行:\oyy
- 十六进制,Yy代表的字符,例如\xoa代表换行:\xyy
- 其他的字符以普通格式输出:\other
2.4 Python字符串运算符
下表实例变量a值为字符串"Hello",b变量值为"Python":
操作符 描述 实例
- 【+】:字符串连接,a+b输出结果:HelloPython
- 【* 】:重复输出字符串 , a*2输出结果:HelloHello
- [] :通过索引获取字符串中字符,a[1]输出结果e
- [:] :截取字符串中的一部分,遵循左闭右开原则 str[0,2]是不包含第3个字符的 , a[1:4] 输出结果
- 【in 】 :成员运算符-如果字符串包含给定的字符返回true , 'H’in a 输出结果true
- not in :成员运算符-如果字符串中不包含给定的字符返回true , 'M’not in a 输出结果true
字符串格式化问题
1.概述
Python支持格式化字符串的输出,尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符%5的字符串中,在python中,字符串格式化使用与c中sprintf函数一样的语法。
实例如下:
#!/usr/bin/python3
print(“我叫 %s 今年 %d 岁!” % (‘小明’, 10))
以上实例输出结果:
我叫小明今年10岁!
2.python字符串格式化符号:
- %c : 格式化字符及其ASCII码
- %s : 格式化字符串
- %d : 格式化整数
- %u : 格式化无符号整型
- %o :格式化无符号八进制数
- %x : 格式化无符号十六进制数
- %X : 格式化无符号十六进制数(大写)
- %f : 格式化浮点数字,可指定小数点后的精度
- %e :用科学计数法格式化浮点数
- %E : 作用同%e,用科学计数法格式化浮点数
- %g : %f和%e的简写
- %G :%f和%E的简写
- %p : 用十六进制数格式化变量的地址
3.格式化操作符辅助指令:
- 【* 】: 定义宽度或者小数点精度
- 【- 】: 用做左对齐
- 【+ 】 :在整数前面显示加号(+)
- 【0 】 : 显示的数字前面填充’0’而不是默认的空格
- 【%】 : '%%‘输出一个单一的%’
- 【(var)】: 映射变量(字典参数)
- 【m.n.】 :m是显示的最小总宽度,n是小数点后的位数(如果可用的话)