python学习笔记3列表、元组和字符串

python没有数组,只有列表
列表中可以有多种数据类型的数据,列表中可以有列表,列表也可以为空。
1.1 创建列表

>>>num=[1,2,3,4,5]
>>>mix=[1,"小明",3.1415,[1,2,3]]
>>>empty[]

1.2 向列表中添加元素
列表名.append(元素)
元素添加在末尾,且只能添加一个,append是列表对象的一个方法(对象中的函数)

>>> number=[1,2,3,4,5]
>>> number.append(6)
>>> number
[1, 2, 3, 4, 5, 6]
>>> 

列表名.extend([元素,元素…])
也是添加在末尾,且实际上是用一个列表来扩展另外一个列表

>>> number.extend([7,8])
>>> number
[1, 2, 3, 4, 5, 6, 7, 8]
>>> 

列表名.insert(元素,位置)
往任意位置插入元素

>>> number.insert(0,0)
>>> number
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> 

如果插入位置比最后一个位置还要大,则添加在列表末尾

>>> number.insert(10,10)
>>> number
[0, 1, 2, 3, 4, 5, 6, 7, 8, 10]

1.3从列表中获取元素
可以通过索引值(index)从列表获取单个元素

>>> name=["xiaoming",'xiaohong','xiaolv']
>>> name[0]
'xiaoming'

1.4删除元素
remove()方法 列表名.remove(元素)
删除列表中已知元素,无需知道具体位置

>>> name.remove("xiaoming")
>>> name
['xiaohong', 'xiaolv']
>>> 

del语句 ,删除具体位置的元素,del不是方法,而是一个语句,del也可以删除整个元素

>>> del name[1]
>>> name
['xiaohong']
>>> 
>>>> del name
>>> name
Traceback (most recent call last):
  File "<pyshell#48>", line 1, in <module>
    name
NameError: name 'name' is not defined
>>> 

pop()方法 列表名. pop(元素)
pop默认弹出末尾最后一个元素,也可以弹出具体位置的元素

>>> number.pop()
8
>>> number.pop(0)
0
>>> number
[1, 2, 3, 4, 5, 6, 7]
>>>  

1.5列表分片
建立原列表的部分或全部数据拷贝
列表名[起始位置:结束位置:步长],结束位置是不包含的,位置都默认为第一个元素和最后一个元素,步长默认为1,

>>> number
[0, 1, 2, 3, 4, 5, 6, 7]
>>> number[0:2]
[0, 1]
>>> number[2:]
[2, 3, 4, 5, 6, 7]
>>> number[:6]
[0, 1, 2, 3, 4, 5]
>>> number[:]
[0, 1, 2, 3, 4, 5, 6, 7]
>>> number[::2]
[0, 2, 4, 6]
>>> number[::-1]#-1就是复制一个反转的列表
[7, 6, 5, 4, 3, 2, 1, 0]
>>> 

1.6列表之间的操作
关系操作符(<,>,==),多元素列表只能比较第一个元素大小
逻辑操作符(+),(*)

>>> list1=[123]
>>> list2=[234]
>>> list1<list2
True
>>> list3=list1+list2
>>> list3
[123, 234]
>>> list4=["abc"]
>>> list3=list4+list1
>>> list3
['abc', 123]
>>> list1*3
[123, 123, 123]
>>>

成员关系操作符in和not in

>>> 123 in list1
True
>>> 234 not in list2
False
>>> 

访问列表中的列表

>>> list5=[1,2,3,[1,2,3]]
>>> list5[3][1]
2
>>> 

和二维数组相似
1.7列表对象的其他方法
count() 计算它的参数在列表中出现的次数

>>> list5.count(1)
1

index()返回在起始位置和结束位置中的它的参数的位置,默认为第一个字符和最后一个字符

>>> list5.index(1)
0
>>> list5.index(2,0,3)
1
>>> 

reverse()将整个列表原地翻转,

>>> list5.reverse()
>>> list5
[[1, 2, 3], 3, 2, 1]

sort()用指定的方法对列表的成员进行排序,默认为从小到大

>>> list5
[3, 2, 1]
>>> list5.sort()
>>> list5
[1, 2, 3]

实际上sort()有三个参数 sort(func,key,reverse),reverse=0时,为从小到大reverse=1时,从大到小排序

>>> list5.sort(reverse=1)
>>> list5
[3, 2, 1]
>>> list5.sort(reverse=0)
>>> list5
[1, 2, 3]

1.8片分拷贝的补充
列表直接赋值给另外一个列表,它们类似共用一个空间,会同时改变
当用片分拷贝时,开辟一个新的空间,其他类型变量不会这样

>>> a=123
>>> b=a
>>> a=234
>>> b
123
>>> a
234
>>> list6=list5
>>> list6
[1, 2, 3]
>>> list5
[1, 2, 3]
>>> list4=list5[:]
>>> list5.sort(reverse=1)
>>> list5
[3, 2, 1]
>>> list6
[3, 2, 1]
>>> list4
[1, 2, 3]

2.元组
和列表的区别就是列表可以任意修改列表中的元素,可以任意插入或者删除,但是元组是不行的,元组是不可以改变的,也不能排序等
2.1创建和访问一个元组

  >>>tuple=(1,2,3)#元组使用小括号
  >>> tuple=()#空元组
  >>>tuple=(1,)
  >>>tuple=1,2,3#也可以省略小括号,但是一定要有逗号
  >>> tuple=1,#也是元组

访问元组的方式和列表相同,片分也一样

>>> tuple[1]
2
>>> tuple[:]
(1, 2, 3)
>>> tuple[:1]
(1,)

2.2更新和删除元组
实际上是通过拷贝元组片段构造一个新的元组
注意,一定不能省略

>>> tuple1=tuple[:1]+("temp",)+tuple[1:]
>>> tuple1
(1, 'temp', 2, 3)

删除:

>>> tuple2=tuple1[:1]+tuple1[2:]
>>> tuple2
(1, 2, 3)

del语句可以删除整个元组

>>> del tuple2

关系操作符,逻辑操作符,和成员关系操作符也可以直接运用在元组上
3.字符串
3.1
片分也可以用在字符串上
字符串和元组性质都一样,不能改变,更新和删除方法和元组一样

>>> str1='012345'
>>> str1[1:]#片分
'12345'
>>> str1[1]
'1'
>>> str2=str1[:3]+" temp "+str1[3:]#更新删除
>>> str2
'012 temp 345'

内置函数在另外一篇写
3.2格式化
内置函数中有一个format()方法接受位置参数和关键字参数(位置参数和关键字参数均传递到一个叫做replacement字段)

>>> str4="{0} abc {1} {2}".format("a","b","c")
>>> str4
'a  abc b c'

{0},{1},{2}与"a",“b”,"c"位置相匹配,所以format()的三个参数就叫做位置参数

>>> str6="{a} abd {b} {c}".format(a="a",b="b",c="c")
>>> str6
'a abd b c'

format()将参数中等值的字符串替换进去,这就是关键字参数,位置参数和关键字参数可以混合使用,但是位置参数一定要在关键字参数之前,不然会出错

>>> "{0} {1:.2f}".format("圆周率",3.14159)
'圆周率 3.14'

冒号表示格式化符号的开始 .2表示四舍五入保留两位小数
3.3格式化操作符%

4.序列
将列表,元组,字符串统称为序列,序列是可迭代对象

4.1 list()方法:将一个可迭代对象转换为列表

>>> a=list("abcde")#字符串转换为列表
>>> a
['a', 'b', 'c', 'd', 'e']
>>> b=list((1,2,3,4))#元组转换为列表
>>> b
[1, 2, 3, 4]
>>> c=list()#建立空列表
>>> c
[]

4.2 tuple()将可迭代对象转换为元组,用法与上相同
4.3 str()将obj对象转换为字符串
4.4 len() 用于返回参数的长度
4.5 max()返回序列或者参数集合中的最大值
4.6 min()返回序列或者参数集合中的最小值
4.7sum(start) 返回序列综合,默认start为0,否则从start开始
4.8 sorted(iterable,key=none,reverse=False) 返回一个排好序的新列表,sort()是实现列表原地排序

>>> a=[7,2,4,8,1,9]
>>> b=a[:]
>>> a.sort()
>>> a
[1, 2, 4, 7, 8, 9]
>>> sorted(b)
[1, 2, 4, 7, 8, 9]
>>> b
[7, 2, 4, 8, 1, 9]

4.9 reversed()返回逆向迭代序列的值,效果和reverse()效果一样,reverse()是列表原地翻转,reversed()返回一个翻转后的迭代器对象
4.10 enumerate() 生成由二元组(二元组就是元素数量为二的元组)构成的一个迭代对象,每个二元组是由可迭代参数的索引号及其对应的元素组成。

>>> for i in enumerate(a):
	print(i)
	
(0, 1)
(1, 2)
(2, 4)
(3, 7)
(4, 8)
(5, 9)

4.11 zip(iter1,iter2,…)返回由各个迭代参数共同组成的元组

>>> a
[1, 2, 4, 7, 8, 9]
>>> b
[7, 2, 4, 8, 1, 9]
>>> c=['a','c','b','e','d','f']
>>> for i in zip(a,b):
	print(i)

(1, 7)
(2, 2)
(4, 4)
(7, 8)
(8, 1)
(9, 9)
>>> for i in zip(a,b,c):
	print(i)
	
(1, 7, 'a')
(2, 2, 'c')
(4, 4, 'b')
(7, 8, 'e')
(8, 1, 'd')
(9, 9, 'f')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值