一、Python的数据类型
1.序列分为三种,字符串,元祖,列表。
都是可以用索引和切片来操作的。
2.序列的一些其他基本操作
(1) len()函数 可以求序列的长度。
(2) + : 连接2个序列
(3) * : 重复序列元素 * 后面必须是个数值,不能是字符串不然会报错。
(4) in 和not in : 判断元素是否在序列中,返回结果为布尔值。
当 2 元素在变量a 中 返回true 不在返回false
当使用not in 2 在变量a中返回false。不在返回true。
(5) max():求序列里的最大值 min():求序列里的最小值
(6)cmp(x,y) :比较2个序列是否相等
如果相等返回1 如果不等返回0 如果 a小于b 返回-1
二、元祖
1.元祖和列表十分的相似。
元祖是用()来定义。多元素用,号分割。只有一个元素也要加,号
元祖里可以存放任意数据,包过另外一个元祖。
2.元祖和字符串一样是不可变的。
什么是不可变,就是字符串里的元素不能变
比如:a = 'abcde' abcde这个字符串里任意一个元素是不能变的
a[-1] 或者最后一个值e
a[-1] = f 这样是不行的,会报错。这就是不可变。
三、元祖的操作
1.元祖的拆分
元祖里是可以存放变量的,当存放了变量后,变量的值就会被元祖读取。
比如:
元祖里的值可以分别赋值给其他变量
one,tow,three = b 这样赋值给其他变量。
以后我们在写函数的时候,函数会return2个值,这2个值就在元祖里,我们就可以用2个变量来接收。
Python里一切皆对象
2.元祖的方法。
元祖的方法有2个:.count方法 和.index 方法。
.count 方法的具体作用是 判断一个元素是否在元祖里,如果在返回1 不在返回0
.index 方法:是判断元素所在的位子。如果不在其中就报错。
四、列表
1.什么是列表?
列表就是处理一组有序项目的数据结构,即可以在列表中存储一个序列的项目。
列表是可变类型的数据,字符串和元祖都是不可变的!
2.创建列表
列表的创建是用[ ] 来创建。
可以直接取下标来更改,可以多个一起更改。
列表可以使用序列的操作,2个列表相加可以组成一个大列表。
4.列表的操作
1.取值,用切片和索引来取值。
2.添加数据,在列表里新追加一个数据。使用.append()方法。
3.删除某个元素,有2种方式
第一种是 del list[] 使用del 来删除
这是删除整个列表。
del x[1] 这是删除x列表中第二个元素。
可以看到ty 被删除了
第二种方式 .remove()方法。remove方法删除的是出现的第一个值,值可以重复的。
4.修改列表的值
知道值得下标就可替换了
a[2] = 2
5.查找该值是否在列表中
使用in 和not in 来判断!
5.列表的其他方法介绍
1..insert()方法:这个方法和append方法类似,插入一条新元素。
不同的是,append插入到最后,insert是可以插入到任意位子。
使用方式:a.insert(1, 'd')
当插入的是一个空的列表或者元祖时,想在往这个空的列表里插入内容可以这么做
a[1].append('abc')
找到空列表或者空元祖的下标,然后使用append方法插入
2.sort 方法:这个方法是用来给列表中的元素排序用的。
用法:a.sort() 可以不加任何参数,回车后可以发现列表的元素都升序排序了。
3.reverse方法 :用来反转的。
使用方法:a.reverse() 和sort 方法一样
4.pop 方法:这个方法是用删除一个元素并且返回这个元素的值到屏幕上。
用法:a.pop() 如果不加参数的话,默认是删除最后一个元素。
a.pop(1) 删除第二个元素。
5.extend 方法:把可迭代的对象追加到列表里。也是一个新增的方法。
可迭代的是什么意思呢?、
可迭代就是可以变化的元素。比如range(5) 他会产生5个数 这就是一个可迭代的对象。
序列都算是可迭代的对象。
用法:a.extend(range(5))
都是单独一个元素
凡是可迭代的 都可以通过for循环去访问。
6.count方法 用来统计元素出现的次数。
用法:a.count(3) 统计数值3出现的次数。
练习:
现有列表
list1 = ['XXXX', 'b', 3, 'c', 3, '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX']
list2 = ['e', 'f', 'g']
要求对其做以下操作:
1. 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3
答:
In [51]: list3 = list1[1:-1]
In [52]: list3
Out[52]: ['b', 3, 'c', 3, '&', 'a', 3, '3', 3, 'aa', '3']
2. 对list3 做一下几部操作
1)删除特殊符号
答:
In [53]: list3.pop(4)
Out[53]: '&'
In [54]: list3
Out[54]: ['b', 3, 'c', 3, 'a', 3, '3', 3, 'aa', '3']
2)统计 3 在list3中出现的次数
答:
In [57]: list3.count(3)
Out[57]: 4
3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)
答:
In [68]: list3 = list3[0:5:2]
In [69]: list3
Out[69]: ['b', 'c', 'a']
4)对list3排序
答:
In [70]: list3.sort()
In [71]: list3
Out[71]: ['a', 'b', 'c']
5)在末尾追加'd',并把list2追加到list3
答:
In [72]: list3.append('d')
In [73]: list3
Out[73]: ['a', 'b', 'c', 'd']
In [74]: list3.append(list2)
In [75]: list3
Out[75]: ['a', 'b', 'c', 'd', ['e', 'f', 'g']]
3. 现有两个变量
a = ('h',)
b = ('h')
1)将a和b分别追加到上一题的list3中,观察有什么区别
答:
In [76]: a = ('h',)
In [77]: b = ('h')
In [78]: list3.append(a)
In [79]: list3.append(b)
In [80]: list3
Out[80]: ['a', 'b', 'c', 'd', ['e', 'f', 'g'], ('h',), 'h']
没区别
2)将1生成的list3转换成元组(扩展:自己搜索方法)
tuple(list3)
3)打印出只有一个元素'h'的元组,在2中生成的元组中的索引
In [90]: tuple(list3).index('h')
Out[90]: 6