所谓序列,指的是一块可以存放多个值的连续内存空间,可以通过每个值所在的编号(索引)去访问他们
列表(可变序列)
列表 | 方法 | 描述 |
---|---|---|
增 | append | 将元素增加到末尾 |
insert | 添加到指定位置 | |
extend | 将序列中的每个元素追加到末尾(可以添加多个元素) | |
删 | pop | 不带参数弹出最后一个元素、带参数指定下标值 |
remove | 移除指定的元素 | |
clear | 删除列表中的所有值 | |
改 | li[0] = ‘list’ | |
查 | index | 在列表中从左至右查找指定元素,找到了返回改值的下标 |
count | 计算列表中指定元素出现的次数 | |
其他方法 | copy | 返回一个改列表的复制 |
reverse | 对列表中的元素进行反向排列 | |
sort | 对列表中的元素进行从小到大的排列 |
1、创建
①用“=”
直接将一个列表赋值给变量
②list()
函数
#方法一
>>> a_list = ['a','b','c','d']
>>> a_list
['a','b','c','d']
#方法二
>>> a_list = list(('a','b','c','d'))
>>> a_list
['a','b','c','d']
2、增
①直接用“+”
运算符实现
②append()
将元素追加到末尾
③ insert(索引位置,插入元素)
添加到指定的位置
④ extend(可迭代对象)
将序列中的每个元素追加到末尾
#方法一
>>> a_list
['a', 'b', 'c', 'd']
>>> a_list = a_list + ['e']
>>> a_list
['a', 'b', 'c', 'd', 'e']
#方法二
>>> a_list.append([9,8])
>>> a_list
['a', 'b', 'c', 'd', 'e', 9, 8]
#方法三
>>> a_list.insert(2,'s')
>>> a_list
['a', 'b', 's', 'c', 'd', 'e', 9, 8]
#方法四
>>> b_list
[1, 2, 3]
>>> a_list.extend(b_list)
>>> a_list
['a', 'b', 's', 'c', 'd', 'e', 9, 1, 2, 3]
3、删
① del
删除指定位置上的元素 也可以删除整个列表(不是列表独有的方法)
②pop
不带参数删除最后一个元素、带参数删除指定位置的值
③remove
移除指定的元素(没有返回值)
④clear
删除列表中的所有值`
#方法一
>>> a_list
['a', 'b', 's', 'c', 'd', 'e', 9, 1, 2, 3]
>>> del a_list[2] #删除第二个元素
>>> a_list
['a', 'b', 'c', 'd', 'e', 9, 1, 2, 3]
#方法二
>>> a_list
['a', 'b', 'c', 'd', 'e', 9, 1, 2, 3]
>>> a_list.pop() #删除最后一个元素
3
>>> a_list
['a', 'b', 'c', 'd', 'e', 9, 1, 2]
>>> a_list.pop(5) #删除位置为5的元素
9
>>> a_list
['a', 'b', 'c', 'd', 'e', 1, 2]
>>> del a_list[3:,6] #切片删除
>>> a_list
['a', 'b', 'c', 2]
#方法三
>>> a_list
['a', 'b', 'c', 'd', 'e', 1, 2]
>>> a_list.remove('e')
>>> a_list
['a', 'b', 'c', 'd', 1, 2]
#方法四
>>> a_list.clear()
>>> a_list
[]
4、改
①重新重新赋值
>>> li = [5,4,3,2,1]
>>> li[0]='python'
>>> li
['python', 4, 3, 2, 1]
5、查
①index(元素,起始值,终止值)
在列表中从左至右查找指定元素,找到了放回该值的下标
②count
计算列表中指定元素出现的次数
③直接指定位置索引查找
#方法一
>>> li
[5, 4, 3, 2, 1]
>>> li.index(4)
1
>>> li.index(4,0,3)
1
#方法二
>>> li=[1,2,3,3,4]
>>> li.count(3)
2
#方法三
>>> li=[1,2,3,3,4]
>>> li[1]
2
6、切片
格式: list[起始值,终止值,步长]
作用:可以原地修改列表内容,列表的增、删、改、查以及元素替换等操作都可以用切片来实现,并且不印象列表对象内存地址。
>>> l = [3,4,5,6,7,8,9,11,12,13,14]
>>> l[::] #查找所有元素
[3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14]
>>> l[::-1] #步长为-1,即从末位置往起始位置查找
[14, 13, 12, 11, 9, 8, 7, 6, 5, 4, 3]
>>> l[::2] #从起始位置到末位置 步长为2
[3, 5, 7, 9, 12, 14]
>>> l[1::2] #从1位置到末位置 步长为2
[4, 6, 8, 11, 13]
>>> l[3::] #从3位置到末位置 步长为1
[6, 7, 8, 9, 11, 12, 13, 14]
>>> l[3:6] #从3位置到6位置
[6, 7, 8]
>>> l[3:6:2] #从起始位置到末位置 步长为2
[6, 8]
>>> l[0:100:1]
[3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14]
>>> l[100:]
[]
7、其他方法
1、copy
复制一个新的列表
>>> li=[1,2,3,3,4]
>>> a = li.copy()
>>> a
[1, 2, 3, 3, 4]
2、reverse
对列表中的元素进行反向排列
>>>li = [1,2,3]
>>>li
[1,2,3]
>>>li.reverse()# 不会产生新的列表
>>>li
[3,2,1]
3、sort
默认升序排序(同类型)ASCII码
>>>li=[3,5,1]
>>>li.sort()
>>>li
[1,3,5]
>>>li=[3,5,1]
>>>li.sort(reverse = True) #降序排序
>>>li
[1,3,5]
>>> li = ['f','b','e','w','a']
>>> li.sort()
>>> li
['a', 'b', 'e', 'f', 'w']
>>> li = ['fd','cb','we','wc','ab']
>>> li.sort()
>>> li
['ab', 'cb', 'fd', 'wc', 'we']
4、dir 查看所有方法 help 查看帮助文档
list1 = [1,2,3]
print(dir(list1)) #查看list1列表所有的函数方法
拓展
1、Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
示例:
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 | 迭代 |
2、python包含的函数
序号 | 函数 |
---|---|
1 | cmp(list1, list2)] 比较两个列表的元素 |
2 | len(list) 列表元素个数 |
3 | max(list) 返回列表元素最大值 |
4 | min(list) 返回列表元素最小值 |
5 | list(seq) 将元组转换为列表 |
元组(不可变序列)
tuple | 函数方法 | 描述 |
---|---|---|
查 | count | 查数量 |
index | 查第一个元素 | |
删 | del | 删除整个元组 |
连接组合 | a+b形式 | 两个元组直接相加 |
1、创建
①用“=”
将一个元组赋值给变量
>>> tup1 = (1,2,3)
>>> tup1
(1, 2, 3)
注意:元组中只包含一个元素时,需要在元素后面添加逗号 例如:tup1 = (50,)
2、查
①count()
计算元素出现个数
②index(元素,起始值,终止值)
查找元素的位置
>>> tup1 = (1,2,3,2,2)
>>> tup1.count(2)
3
>>> tup1
(1, 2, 3)
>>> tup1.index(1)
0
3、连接组合
>>>a=(1,2,3)
>>>b=(3,4,5)
>>>a+b
(1,2,3,4,5)
4、删
del
:删除整个元祖
>>>del a
>>>a
name 'a' not defined
5、切片
切片操作与列表一致,这里就不多说了
>>> tup1 = (1,2,3,2,2)
>>> tup1[1:3]
(2, 3)
拓展
1、元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
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 | 迭代 |
2、元组内置函数
Python元组包含了以下内置函数
序号 | 函数 |
---|---|
1 | cmp(tuple1, tuple2)] 比较两个元组的元素 |
2 | len(tuple) 计算元组元素个数 |
3 | max(tuple) 返回元组元素最大值 |
4 | min(tuple) 返回元组元素最小值 |
5 | list(seq) 将列表转换为元组 |
字符串(不可变)
str | 函数方法 | 描述 |
---|---|---|
查 | count | 计算出现了多少次 |
find | 查找一端数据 | |
index | 返回指定的下标 | |
isdigit | 判断一个字符串里的数据是不是都是数字 | |
isalpha | 判断每个元素是不是字母 | |
endswith | 比较结尾的元素是否相同 | |
startswith | 比较开头的元素是否相同 | |
islower | 判断字符串中的值是否全部是小写 | |
isupper | 判断字符串中的值是否全部是大写 | |
删 | replace | |
改 | upper | 把所有的字母转换成大写 |
lower | 把所有字母转换成小写 | |
strip | (lstrip,rstrip) 除去空格带参数,去除指定元素的开头和结尾的相同的元素 | |
capitalize | ||
title | ||
split | 划分字符串 | |
增 | join | |
字符串拼接 |
1、查
① count
计算出现了多少次
>>> str1 = 'hello world'
>>> str1.count('l')
3
② find(元素,起始值,终止值)
如果包含子字符串返回开始的索引值,否则返回-1。
>>> str1 = 'hello world'
>>> str1.find('ll')
2
>>> str1.find('a')
-1
- index、返回指定值的下标,没有会报错
- isdigit、判断一个字符串里的数据是不是都是数字
- isalpha、判断每个元素是不是字母
- endswith、比较结尾的元素是否相同
- startswith、比较开头的元素是否相同
- islower、判断字符串中的值是否全是小写的
- isupper、判断字符串中的值是否全是大写的
2、改
① capitalize
把第一个字母转换成大写
>>>a= "hello world"
>>> a.capitalize()
'Hello world'
②title
每个单词的首字母进行大写转换
>>> a= "hello world"
>>> a.title()
'Hello World'
③split
没有参数默认以空格来切割、有参数
>>>b.split()# 默认为切割 特别常用 爬虫
>>>b = 'hello world python'
>>>b.split('o')
['hell', ' w', 'rld pyth', 'n']
④replace
替换把对象中有的值放第一个参数中替换成第二个参数
str.replace(old, new[, max])
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次(默认是全部,可以指定次数)
>>> str2 = "hello world"
>>> str3 = str2.replace('h', 'H') #如果不赋值给str3就会出错
>>> str3
'Hello world'
- upper、把所有的字母转成大写
- lower、把所有的字母转成大写
- strip (lstrip,rstrip)、去除左右两边的空格(去左,去右),带参数去除指定元素的开头和结尾的相同的元素
>>>str = "00000003210Runoob01230000000";
>>>str.strip( '0' ); # 去除首尾字符 0
>>>a = ' hello python '
>>> a.strip() # 去除首尾空格
'hello python'
>>>str2 = "Runoob";
>>>str2.strip("R");
'unoob'
#编译器会去除两端所有相应的字符,直到没有匹配的字符。
>>>dodo = "say hello say boy saaayaaas"
>>>print(dodo.strip('say') )
hello say boy
3 增
字符串拼接
转义
str的转义 | |
---|---|
\n | 换行 |
\t | 水平制表符 |
\b | 退格 |
\r | 回车,当前位置移到本行开头 |
\\ | 代表反斜杠 \ |
’ | 代表一个单引号,同样的 “ 等符号也可以这么输出 |
\0 | 代表一个空字符 |
\a | 系统提示音 |
交互式模式:是什么就显示什么
print:尽量展示为人类可以看懂得数据(调用__ str __)
字符前面加上 \ ,字符就不再表示字符本身的意思,表示ASCII码中不能显示字符,常见有下:
\n 换行
\t 水平制表符 Tab 四个空格
\b 退格
\r 回车,当前位置移到本行开头
\\ 代表反斜杠 \
\’ 代表一个单引号,同样的 “ ? 等符号也可以这么输出
\0 代表一个空字符
\a 系统提示音
在python中如果要去掉字符串的转义,只需要在字符串前面加上 r
r'abc\tabc'
>>>a = "abc\babc"
>>>print(a)
"ababc"
>>>print(r"abc\babc")
"abc\babc"
字符串方法本身不会变,但是我们可以拿来赋值拿来用就很简单了
字符串拼接
1、+
>>> a = 'abc'
>>> b = 'def'
>>> a+b
'abcdef'
2、%s
>>> name = 'wc'
>>> age = 18
>>> print('你好%s,你%s岁' %(name,age))
你好wc,你18岁
3、join
>>>"-".join("hello")
'h-e-l-l-o'
>>>"-".join(['hello','world'])
'hello-world'
4、format
>>>'{} {} {}'.format('I','love','you')
'I love you'
>>>'{0} {1} {2}'.format('a','b','c')
'a b c'
>>>'{n1} {n2} {n3}'.format(n1='name',n2='age',n3='sex')
'name age sex'
>>>'{}-{}-{}'.format('I','love','you')
'I-love-you'