基础数据类型(二)
1、列表List
列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如JS中叫数组,以[]括来表示,每个元素以逗号隔开,而且列巴内容可以存放各种数据类型的数据比如:
list = ['hi', True, (4,5,6), ['A', 'B', 'C'], {'name':'Alex'}]
列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。
1.1、列表元素的添加
#1、append(obj)在列表末尾添加新的元素 list = ['A','B','C',2,True] print(list) #['A', 'B', 'C', 2, True] list.append("D") print(list) #['A', 'B', 'C', 2, True, 'D'] list.append([1,2,3]) print(list) #['A', 'B', 'C', 2, True, 'D', [1, 2, 3]] #2、insert(index, obj)插入元素,index为要插入的索引位置 list = ['A','B','C',2] list.insert(3,'egon') print(list) #['A', 'B', 'C', 'egon', 2] #3、extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)即迭代追加 list = ['A'] list.extend('机器人') print(list) #['A', '机', '器', '人'] list.extend([True,2]) print(list) #['A', '机', '器', '人', True, 2] list.extend(('1','2')) print(list) #['A', '机', '器', '人', True, 2, '1', '2']
1.2、列表元素的删除
#1、pop(index) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 list = ['A','B','C','D','E'] list.pop() #默认删除最后一个 print(list) #['A', 'B', 'C', 'D'] retval = list.pop(2) #移除元素返回值 print(retval) #C print(list) #['A', 'B', 'D'] #2、remove(obj) 移除列表中某个值的第一个匹配项,无返回值 list = ['A','B','C','D','E'] retval = list.remove('C') print(retval) #None print(list) #['A', 'B', 'D', 'E'] #3、del 删除列表元素 #(1)功能一:删除列表 list = ['A','B','C','D'] del list print(list) #<class 'list'> #(2)功能二:可以按照索引或切片去删除元素() list = ['A','B','C','D','E','F'] del list[4] print(list) #['A', 'B', 'C', 'D', 'F'] del list[0:2] #切片0:2,删除索引为0、1,不包括2 print(list) #['C', 'D', 'F'] list1 = [1,2,3,4,5,6] #del list[起始位置:步长] del list1[1::2] #删除所有索引为奇数的元素 print(list1) #[1, 3, 5] #4、clear() 清空列表,无返回值 list = ['A','B','C','D','E','F'] list.clear() print(list) #[]
1.3、列表元素的修改
list = ['alex','taibai','wusir','ritian'] #(1)、按照索引去改 list[0] = '男神' print(list) #['男神', 'taibai', 'wusir', 'ritian'] #(2)、按照切片去改 list[0:2] = ['太白','Alex'] print(list) #['太白', 'Alex', 'wusir', 'ritian']
1.4、查询
#1、按索引或切片查找 list = ['A','B','C','D','E','F'] print(list[0]) #A print(list[0:3]) #['A', 'B', 'C'] #2、for循环查找 list = ['A','B','C','D','E','F'] for item in list: print(item, end=' ') #A B C D E F #3、index(obj) 从列表中找出某个值第一个匹配项的索引位置 list = ['A','B','C','D',] print(list.index('C')) #2 #4、sort() 对列表中元素进行排序 list = [1,3,6,8,7,4,2,9,10] #(1)从小到大 list.sort() print(list) #[1, 2, 3, 4, 6, 7, 8, 9, 10] #(2)sort(reverse) 从大到小 list.sort(reverse=True) print(list) #[10, 9, 8, 7, 6, 4, 3, 2, 1] #5、reverse() 反向列表中元素,即倒序 list = [1,3,6,8,7,4,2,9,10] list.reverse() print(list) #[10, 9, 2, 4, 7, 8, 6, 3, 1] #6、count(obj) 统计某个元素在列表中出现的次数 list = [1,3,5,7,3,8,4,2,9] print(list.count(3)) #2
1.5、列表常用函数
#1、len(list) 列表元素个数 list = [1,3,4,5,6,9,2,10] print(len(list)) #8 #2、max(list) 返回列表元素最大值 list = [1,3,4,5,6,9,2] print(max(list)) #10 #3、min(list) 返回列表元素最小值 list = [1,3,4,5,6,9,2] print(min(list)) #1 #4、list(seq) 将元组转换为列表 aTup = (1,2,3,4) print(aTup) #(1, 2, 3, 4) alist = list(aTup) print(alist) #[1, 2, 3, 4]
1.6、列表与字符串的转换
alist = ['alex','wusir','taibai'] #1、列表转字符串 aStr = '_'.join(alist) print(aStr) #alex_wusir_taibai #2、字符串转列表 blist = aStr.split('_') print(blist) #['alex', 'wusir', 'taibai']
2、元组Tuple
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
实例如下:
tup1 = ('hello', 'python', 2018, 01) tup2 = (1, 2, 3, 4, 5 ); tup3 = ("a", "b", "c", "d") #创建空元组 tup = ()
当元组()中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
#即该元素是什么类型,变量就是什么类型 tuple1 = (1) print(tuple1, type(tuple1)) #1 <class 'int'> #加上逗号',',才是元组 tuple1 = (1,) print(tuple1, type(tuple1)) #(1,) <class 'tuple'>
注:元组中的方法与列表的使用方式相同,在此不再赘述。
元组的子元素不能更改,但孙子元素有可能更改
实例如下:
#元组中孙子元素的修改 aTup = (1,2,'wusir',[1,2,3],(2,3,4),'taibai',True) aTup[3].pop(1) print(aTup) #(1, 2, 'wusir', [1, 3], (2, 3, 4), 'taibai', True) aTup[3].append('taibai') print(aTup) #(1, 2, 'wusir', [1, 3, 'taibai'], (2, 3, 4), 'taibai', True)