Python基础-列表、元组、字符串
代码编辑器:Anaconda3_Jupyter Notebook
参考书目:小甲鱼—零基础入门Python
列表
- 列表的标志
列表是一堆有序数据的集合,用中括号[ ]括起来就可以,数据之间用逗号隔开 - 列表的创建
student = [1,2,"Tom",[1,2,3]]
- 向列表添加元素
append()方法:新元素默认添加至列表尾部,且一次只能添加一个元素
student = [1,2,'Tom',[1,2,3]]
student.append('liy')
#在python中,正规输出语句 print(student);后文类似
student
输出:[1, 2, 'Tom', [1, 2, 3], 'liy']
insert(a,b)方法:可以往列表中的任意位置插入元素,有两个参数,a表示在列表中的位置,b代表插入该位置的元素
student.insert(2,88)
student
输出:[1, 2, 88, 'Tom', [1, 2, 3], 'liy']
- 从列表中获取元素
通过索引值(index)获取单个元素,索引值从0开始
student[0]
输出:1
- 从列表中删除元素
remove()方法:删除已知的元素
student.remove(88)
输出:[1, 2, 'Tom', [1, 2, 3], 'liy']
del方法:删除指定位置的元素
也可以删除整个列表
del student[2]
输出:[[1, 2, [1, 2, 3], 'liy']
del student
查看student:
NameError Traceback (most recent call last)
<ipython-input-34-98eabfd95b2a> in <module>
----> 1 student
NameError: name 'student' is not defined
pop()方法:将元素弹出,默认弹出列表最后一位元素,也可加索引值弹出对应位置元素
s = [1,2,3,4,5,6,7,8]
s.pop()
s
输出:[1, 2, 3, 4, 5, 6, 7]
s.pop(1)
输出:[1, 3, 4, 5, 6, 7]
- 列表的切片
用冒号隔开两个索引值,左边是开始位置,右边是结束位置(不包含该元素)。切片也称为拷贝,从原来列表拷贝部分元素,但对原来的列表无影响。
s = [1,2,3,4,5,6,7,8]
s[1:4]
输出:[2, 3, 4]
s
输出:[1, 2, 3, 4, 5, 6, 7, 8]
- 列表的其他相关方法
count():计算参数在列表中出现的次数
s = [1,2,3,4,5,6,7,8]
s.count(3)
输出:1
index():返回参数在列表中的位置
s = [1,2,3,4,5,6,7,8]
s.index(7)
输出:7
reverse():翻转列表,前后倒置
s = [1,2,3,4,5,6,7,8]
s.reverse()
s
输出:[8, 7, 6, 5, 4, 3, 2, 1]
sort():对列表内的元素进行从小到大的排序操作
s = [7,2,9,4,5,1,7,8,3]
s.sort()
s
输出:[1, 2, 3, 4, 5, 7, 7, 8, 9]
元组
-
元组的标志
元组的功能同列表相似,最大的区别在于列表可以任意修改、删除,元组却是不可变的
元组用小括号( )表示 -
元组的创建
访问方式同列表相似
ss = (1,2,3,4,5,6,7,8)
ss[2]
输出:3
ss[2:]
输出:(3, 4, 5, 6, 7, 8)
可以直接删除整个元组
del ss
ss
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-48-f74319cf0b81> in <module>
1 del ss
----> 2 ss
NameError: name 'ss' is not defined
字符串
- 定义
字符串是由一系列字符组成的数据类型,用单引号或双引号表示,如’abc’,“abc”。
如果字符串内容中出现单引号或双引号,需要提前做出一些操作:
(1) 利用转义符号 \ 对字符串中的引号进行转义
(2) 若字符串中只出现一种引号,则可以整个字符串用另一种形式的字符串表示
s = 'The world'
s = "The world"
输出:'The world'
s = 'Let\'s go !'
s = "Let's go !"
s
输出:"Let's go !"
- 字符串的访问
字符串的访问同列表相似,用中括号、索引访问
s = "Let's go !"
print ("输出前5位 : ",s[:4])
输出:输出前5位 : Let'
- 字符串的拼接(+)
用加号 + 可以拼接两个字符串
s = "Let's go !"
ss = s + " Good!"
print (ss)
输出 : Let's go ! Good!
- 重复输出 (*)
字符串重复输出n次- str *n
s = 'very'
print (s*3)
输出 : veryveryvery
- 成员运算符(in,not in)
s = 'very'
print ('q' not in s)
print ( 'v' in s)
print ('w' in s)
输出:
True
True
False
- 原始字符串 (r ,R)
当字符串中存在转义字符时,在字符串前加一个r(或R),字符串就可以按原始打印
s = ':\now !'
print (s)
ss = r':\now !'
print("加r后的结果: ",ss)
输出:
:
ow !
加r后的结果: :\now !
- 字符串内置方法
方法 | 含义 |
---|---|
capitalize() | 将字符串的第一个字符大写 |
casefold() | 所有字符小写 |
count(sub[,strat[,end]]) | 返回sub在字符串中出现的次数,strat、end表示范围,可选 |
join(sub) | 以字符串为分隔符,插入到sub中所有的字符之间 |
rstrip() | 删除末尾的空格 |
strip([chars]) | 删除字符串前边&后边的空格,可以定制删除的字符chars |
find(sub[,start[,end]]) | 检测字符串sub是否包含着字符串中,有则返回索引值(index),否则返回-1,strat、end表示范围,可选 |
index(sub[,start[,end]]) | 同find()方法一样 |
replace(old,new,[,count]) | 用new字符串替换old字符串,替换次数不超过count次 |
split(sep=None,maxsplit=-1) | 默认是以空格为分隔符切片字符串,否则,仅分隔maxsplit个字符串,返回切片后的字符串拼接的列表 |
s = 'xx'.join("Very")
print(s)
输出:Vxxexxrxxy
s = "Tom, Let's go !"
print(s.split())
输出:['Tom,', "Let's", 'go', '!']
s = "Tom, Let's go !"
print(s.replace("Tom","Mary"))
输出:Mary, Let's go !
- 字符串格式化 (%)
格式化操作符
符号 | 含义 |
---|---|
%c | 格式化字符及其ASCII码 |
%d | 格式化字符串 |
%o | 格式化整数 |
%x | 格式化无符号八进制数 |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e ; %E | 用科学计数法格式化浮点数字 |
%f ; %G | 根据值的大小决定使用%f或%e |
格式化操作符的辅助指令
符号 | 含义 |
---|---|
m.n | m 最小显示宽度,n 小数点后位数 |
- | 结果左对齐 |
+ | 正数前面显示加号 |
# | 在八进制数前面显示‘0o’ ,十六进制数前面显示’0x64’或’0X64’ |
0 | 显示的数字前面填充0代替空格 |
print('%d 转换成八进制是:%o '%(123,123))
输出:123 转换成八进制是:173
print('%5.2f' %32.569)
输出:32.57
print('%010d' %5)
输出:0000000005