文章目录
1、列表(list)
列表是最常用的python数据类型。序列中的每个元素都分配一个数字。
列表的数据项不需要具有相同的类型;列表中的元素可以重复。
列表的第一个索引是0,第二个索引是1,依次类推。例如:
列表语法:(列表内的元素没有要求?)
list1=[‘name1’,‘name2’,‘name3’]
list2=[‘1’,‘2’,‘3’]
1.1 访问列表中的值
使用下标索引来访问列表中的值,也可以使用方括号的形式截取字符。如下:
>>> list1=['math','English','Chinese','1','2','3'];
>>> list2=['4','5','6','7'];
>>> print ("list1[0]:")
list1[0]:
>>> print ("list1[0]:",list1[0])
list1[0]: math
>>> print ("list2[1:3]:",list2[1:3])
list2[1:3]: ['5', '6']
>>> print ("list2[1:4]:",list2[1:4])
list2[1:4]: ['5', '6', '7']
>>> print(list1[5])
3
注意!!!当使用分片步长时,list[a:b]表示从下标索引为a的元素到下标索引为b的元素(不包括下标索引为b的元素)即从下标索引为a的元素到下标索引为b-1的元素即可
即代码中第7~10行,list[1:3]表示从下标索引为1的元素到下标索引为2的元素;list[0:4]表示从下标索引为0的元素到下标索引为3的元素。
1.2 更新列表
a、可以对列表的数据项进行修改或更新。如下:
>>> list1=['math','English','Chinese','1','2','3'];
>>> list1[0]='yeye'
>>> list1
['yeye', 'English', 'Chinese', '1', '2', '3']
b、也可以使用append(‘ ’)的方法来添加列表项,但注意一次只能添加一项,如果添加多项就会报错。
函数语法:
list.append(’ ')
如下:
>>> list1=['math','English','Chinese','1','2','3'];
>>> list1.append('4')
>>> list1
['math', 'English', 'Chinese', '1', '2', '3', '4']
>>> list1.append('4','5')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)
c、
1.3 删除列表元素
a、可以使用del语句来删除列表的元素。如下:
>>> list1=['math','English','Chinese','1','2','3'];
>>> del list1[5]
>>> list1
['math', 'English', 'Chinese', '1', '2']
b、也可以使用remove函数移除列表中某个值的第一个匹配项。
语法:
list.remove(’obj’)
obj–要从列表中移除的元素的值
如下:
>>> list1=['math','English','1','Chinese','2','1','3'];
>>> list1.remove('1')
>>> list1
['math', 'English', 'Chinese', '2', '1', '3']
1.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!’] | 重复 |
3in[1,2,3] | ture | 元素是否存在与列表 |
for x in [1,2,3]:print(x,end=" ") | 1 2 3 | 迭代 |
1.5 列表截取与拼接
列表支持截取操作。如下:
>>> l=['math','english','chinese']
>>> l[2]
'chinese'
>>> l[-2]
'english'
>>> l[1:]
['english', 'chinese']
python表达式 | 结果 | 描述 |
---|---|---|
l[2] | ‘chinese’ | 读取第三个元素 |
l(-2) | ‘english’ | 从右侧开始读取倒数第二个元素 |
l[1:] | [‘english’,chinese’] | 输出从第二个元素开始后的所有元素 |
列表还支持拼接操作。如下:
>>> l=[1,2,3,4]
>>> l +=[5,6,7,8]
>>> l
[1, 2, 3, 4, 5, 6, 7, 8]
1.6 嵌套列表
使用嵌套列表即在列表里创建其它列表。如下:
>>> list1=['a','b','c']
>>> list2=[1,2,3]
>>> list=[list1,list2]
>>> list
[['a', 'b', 'c'], [1, 2, 3]]
>>> list[1]
[1, 2, 3]
>>> list[0]
['a', 'b', 'c']
>>> list[0][1]
'b'
1.7 python中有关列表的函数&方法
序号 | 函数 |
---|---|
1 | len(list) – 列表元素个数 |
2 | max(list) --返回列表元素最大值 |
3 | min(list) – 返回列表元素最小值 |
4 | list(seq) – 将元组转换为列表 |
序号 | 方法 |
---|---|
1 | list.append(obj) – 在列表末尾添加新的对象 |
2 | list.count(obj) – 统计某个元素在列表中出现的次数 |
3 | list.extend(seq) – 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj) – 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index,obj) – 将对象插入列表 |
6 | list.pop([index=-1]) – 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) – 移除列表中某个值的第一个匹配项 |
8 | list.reverse() – 反向列表中元素 |
9 | list.sort(key=None, reverse=False) – 对原列表进行排序 |
10 | list.clear() – 清空列表 |
11 | list.copy() – 复制列表 |
2、元组(tuple)
Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
a、元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。如下:(这里type指种类)
>>> tup1=('math','chinese','english');
>>> tup2=(1,2,3,4,5)
>>> tup3='a','b','c','d'; #不需要括号也可以
>>> type(tup3)
<class 'tuple'>
b、元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。如下:
>>> tup1=(1)
>>> type(tup1) #不加逗号,类型为整型
<class 'int'>
>>> tup1=(1,)
>>> type(tup1) #加上逗号,类型为元组
<class 'tuple'>
元组与列表类似,下标索引也是从0开始,可以进行截取组合等
2.1 访问元组
元组可以使用下标索引来访问元组中的值,(与列表类似)如下:
>>> tup1=('math','chinese','english');
>>> tup2=(1,2,3,4,5);
>>> print('tup1[0]:',tup1[0])
tup1[0]: math
>>> print('tup2[1:5]:',tup2[1:5])
tup2[1:5]: (2, 3, 4, 5)
2.2 修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合。如下:
>>> tup1=('math','chinese','english');
>>> tup2=(1,2,3,4,5);
>>> tup1[0]=1 #修改元组元素操作会报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> # 创建一个新的元组
... tup3=tup1+tup2;
>>> tup3
('math', 'chinese', 'english', 1, 2, 3, 4, 5)
2.3 删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。如下:
>>> tup=('math','chinese','english');
>>> print (tup)
('math', 'chinese', 'english')
>>> del tup
>>> print(tup) #删除后的元组输出后不存在
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'tup' is not defined
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!’) | 重复 |
3in(1,2,3) | ture | 元素是否存在与列表 |
for x in (1,2,3):print(x,) | 1 2 3 | 迭代 |
2.5 元组索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元组:T=(‘math’,‘english’,‘chinese’)
python表达式 | 结果 | 描述 |
---|---|---|
T[2] | ‘chinese’ | 读取第三个元素 |
T[-2] | ‘english’ | 反向读取;读取倒数第二个元素 |
T[1:] | (‘english’,‘chinese’) | 截取元素,从第二个开始后的所有元素 |
运行如下:
>>> T=('math','english','chinese')
>>> T[2]
'chinese'
>>> T[-2]
'english'
>>> T[1:]
('english', 'chinese')
2.6 元组内置函数
python元组包含了以下内置函数:
序号 | 方法及描述 |
---|---|
1 | len(tuple) – 计算元组元素个数 |
2 | max(tuple) – 返回元组中元素最大值 |
3 | min(tuple) – 返回元组中元素最小值 |
4 | tuple(seq) – 将列表转换为元组 |
第四个将列表转化为元组,实例如下:
>>> list1=['math','english','chinese'];
>>> tuple1=tuple(list1);
>>> tuple1
('math', 'english', 'chinese')
3、字符串(string)
字符串是 Python 中最常用的数据类型。可以使用引号( ’ 或 " )来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:
>>> str1='hello,world'
>>> str2="hello,world"
3.1 访问字符串中的值
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。Python 访问子字符串,可以使用方括号来截取字符串,如下:
>>> str1='hello,world'
>>> str2='yeyexiaookeai'
>>> print ("str1[0]:",str1[0])
str1[0]: h
>>> print ("str2[4:14]:",str2[4:14])
str2[4:14]: xiaookeai
3.2 字符串更新
可以截取字符串的一部分并与其他字段拼接。如下:
>>> str1='hello,world';
>>> print("已更新字符串:",str1[:6]+'yeyexiaokeai!')
已更新字符串: hello,yeyexiaokeai!
3.3 转义字符
在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:
转义字符 | 描述 |
---|---|
\ (在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\’ | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
3.4 字符串运算符
下表例子中变量a值为字符串 “Hello”,b变量值为 “Python”:
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | a + b 输出结果: HelloPython |
* | 重复输出字符串 | a*2 输出结果:HelloHello |
[] | 通过索引获取字符串中字符 | a[1] 输出结果 e |
[ : ] | 截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的 | a[1:4] 输出结果 ell |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | ‘H’ in a 输出结果 True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | ‘M’ not in a 输出结果 True |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | print( r’\n’ ) print( R’\n’ ) |
% | 格式字符串 | 见一小节 |
3.5 字符串格式化
python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。如下:
>>> print("我叫 %s 今年 %d 岁!"%('小明',10))
我叫 小明 今年 10 岁!
python字符串格式化符号:
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
< sp > | 在正数前面显示空格 |
# | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
0 | 显示的数字前面填充’0’而不是默认的空格 |
% | ‘%%‘输出一个单一的’%’ |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |