基础数据类型(二)

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)
原文地址:https://www.cnblogs.com/lioushell/p/8341649.html