python中最基本的数据结构为序列,序列又有字符串,列表和元组。其中列表是可以修改的,而元组是不可修改的。
列表的写法是aa=["张三",21],将所有的元素放在[](方括号)中,用逗号分隔。
元组的写法很简单,只要将值用逗号分隔就能自动创建元组,1,2,3;(1,2,3)通常用圆括号括起来写,还有一点要注意,如果只包含一个值的元组,也需要用逗号如1,或者(1,)这样写。
序列通用的操作
1、索引
索引很简单,等价于Java中的下标,greeting='Hello',greeting[0]的索引是'H',想从右往左只需要把方括号内的索引改成负数即可,如greeting[-5]的索引也是'H'。
2、切片
索引是访问单个元素,切片就是访问特定范围内的元素。用两个索引,使用:分隔,greeting="Hello",greeting[1:3]为el,注意第一个索引指定的元素包含在切片内,第二个索引指定的元素不包含在切片内。
2.1切片可以简写,如切片结束于序列末尾,第二个索引可省略[3:],始于开头第一个索引可省略[:5],要复制整个序列,两个索引都可省略[:]。
2.2numbers=[1,2,3,4,5,6,7,8,9,10],numbers[0:10:2]第一个和第二个为索引,第二个索引是因为有10个数,索引有9个,数字10的索引为9,如果写9就取不到数字10,故往后加一个,第三个数为步长,上面是步长为2即隔一个元素提取,numbers[0:10:2]的结果为[1,3,5,7,9],步长不能为0,否则不能向前移,但可以为负数,从右向左提取。
3、序列相加
相同的序列可以相加,[1,2,3]+[4,5]结果为[1,2,3,4,5],注意必须是相同的序列才可以相加。
4、乘法
将序列与数x相乘,将重复这个序列x次来创建新序列,'abc' * 3结果为'abcabcabc',如果需要创建一个可包含5个元素的列表,但没有任何内容,可以用None,在Python中None表示什么都没有。aa=[None]*5
5、成员资格
要检查特定字符是否包含在序列中,可使用运算符In。
python='rw'
w in python 结果为false,in返回的是布尔值包含返回true,反之返回false
序列中有内置函数len、min和max,len是返回序列包含的元素个数,min和max则是最小最大值。
列表中有一个list函数可以将任何序列,字符串转换为列表,而元组中也有一个tuple可以将一个序列作为参数,转换为元组。
基本的列表操作
1、修改列表:给元素赋值
x=[1,2,3]
x[1]=1
输出x结果为[1,1,3],将值1赋值给元素2
2、删除元素
x=[1,2,3]
del x[0]
输出x结果为[2,3],元素1被删除
3、给切片赋值
name = list('python')
name[1:]=list('aaaaa')
输出name结果为paaaaa,还有在不替换原有元素情况下还可以用作插入新元素。
列表的方法
1、append将一个对象附加到列表末尾
2、clear清空列表内容
3、copy复制列表
4、count计算指定的元素在列表中出现了多少次。
5、extend同时将多个值附加到列表末尾
6、index在列表中查找指定值第一次出现的索引
7、insert将一个对象插入列表
8、pop从列表中删除一个元素,默认是最后一个元素
9、remove用于删除第一个为指定值的元素
10、reverse按相反的顺序排列列表中的元素,其实就是倒叙
11、sort将列表正序排序
12、高级排序(sort可接受两个可选参数key和reverse,要根据长度对元素排序,可将参数key设置为函数len)
x=["aaaa","bb","ccc","d"]
x.sort(key=len)
输出x结果为["d","bb","ccc","aaaa"],另一个参数reverse=True即倒叙。