python开发【三】python基本数据类型之列表、元组和字典
一、Python基本数据类型之列表
1.什么是列表?
列表(list)是python的内置的数据类型。列表跟字符串一样,都是序列类型,故与字符串有许多共同的特点。
序列有两种:list(列表)和tuple(元组)。
不同点:
- 列表可以包含其他元素,如嵌套列表,元组,字典,字符串,整数,布尔值等。实际上列表可以包含任意类型的元素序列。
- 列表是可变类型。字符串一旦创建,就不可修改,因此字符串是一种特殊的元组。列表恰恰相反,可以有多种方法来改变列表。
2.创建列表
创建列表使用[]号来建立列表。
a = [1,2,'a',['12','d',3],'cxf']
3.操作列表
3.1 索引和切片
索引
>>> a = [1,'a',[2,3,'b'],('x','y')] >>> a[0] 1 >>> a[2] [2, 3, 'b'] >>> a[-1] ('x', 'y')
切片
>>> a = [1,'a',[2,3,'b'],('x','y')] >>> a[0:3] [1, 'a', [2, 3, 'b']] >>> a[2][1:-1] [3] >>> a[2][1:] [3, 'b']
4.列表方法
1.增
增加列表中的元素,有2种方法,一种是在列表尾部增加append(),二种是通过索引位置插入insert()。
a = [1,2,3,'a','b'] a.append('c') a.append('d') print(a) 输出: [1, 2, 3, 'a', 'b', 'c', 'd']
a = [1,2,3,'a','b'] a.insert(0,'hello') #在指定位置插入 print(a) 输出: ['hello', 1, 2, 3, 'a', 'b']
2.删
删除列表元素 有pop(self,index),del list[索引] ;remove('元素')
pop()不加参数,默认删除列表中最后一个元素,参数必须是索引,删除索引位置元素
a = [1,2,3,'a',['x','y','z'],'b'] a.pop() print(a) a.pop(1) print(a) 输出: [1, 2, 3, 'a', ['x', 'y', 'z']] #默认删除最后一个元素 [1, 3, 'a', ['x', 'y', 'z']] #删除指定索引位置元素
del list[]
a = [1,2,3,'a',['x','y','z'],'b'] del a[0] print(a) 输出: [2, 3, 'a', ['x', 'y', 'z'], 'b']
remove()
a = [1,2,3,'a',['x','y','z'],'b'] a.remove(['x','y','z']) print(a) 输出: [1, 2, 3, 'a', 'b']
3. 改
a = [1,2,3,'a',['x','y','z'],'b'] a[0] = 'xyz' print(a) 输出: ['xyz', 2, 3, 'a', ['x', 'y', 'z'], 'b']
4.查
a = [1,2,3,'a',['x','y','z'],'b'] print(a[3]) 输出: a
列表是有序的,列表的元素可以被修改。
二、Pyrhon基本数据类型之元组
元组跟列表类似,但是元组的元素不能被修改。
元组表达式: tu = ('a','b',2)
1.索引
tu = (1,2,3,'a','b',('x','y'),4) print(tu[2]) 输出: 3
2.切片
tu = (1,2,3,'a','b',('x','y'),4) v = tu[2:-1] print(v) 输出: (3, 'a', 'b', ('x', 'y'))
3.for 循环
tu = (1,2,3,'a','b',('x','y'),4) for item in tu: print(item) 输出: 1 2 3 a b ('x', 'y') 4
4. 字符串 列表 元组 转换
s = 'shgsdfgd0' li = ['abc',123] tu = (1,2,3,'a','b',('x','y'),4) #str转list list(s) 输出: ['s', 'h', 'g', 's', 'd', 'f', 'g', 'd', '0'] #list转str str(li) #str转tuple v = tuple(s) print(v) 输出: ('s', 'h', 'g', 's', 'd', 'f', 'g', 'd', '0') #list转tuple v1 = tuple(li) print(v1) 输出: ('abc', 123) #元组转list tu = (1,2,3,'a','b',('x','y'),4) v = list(tu) 输出: [1, 2, 3, 'a', 'b', ('x', 'y'), 4] #元组转str v = '_'.join(tu) print(v) 输出报错: #原因是元组中有字符串,不能通过拼接方式 TypeError: sequence item 0: expected str instance, int found
元组也是有序的。
获取元组嵌套元组的元素
tu = (11,'22',(11,22),[(33,44)],True,'abc','d') v = tu[3][0][0] print(v) 输出: 33
元组的一级元素不可修改/删除/增加,元组中的列表元素可以修改
tu = (11,'22',(11,22),[(33,44)],True,'abc','d') tu[3][0] = 'xyz' print(tu) 输出: (11, '22', (11, 22), ['xyz'], True, 'abc', 'd')
三、Pyrhon基本数据类型之字典
创建字典对象
info = {'k1':'v1', #键值对 'k2':'v2' }
字典的vlue可以是任意值
info ={ 'k1':18, 'k2':True, 'k3':[ 11, [], (), 22, 33, { 'kk1':'vv1', 'kk2':'vv2', 'kk2':'vv3', } ] } print(info) 输出: {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv3'}]}
列表、布尔值、字典不能作为字典的key,vlue值任何数据类型都可以。
字典无序,字典通过索引方式查找值
k = info['k3'][5]['kk2'] print(k) 输出: vv2
默认for循环输出字典的key info.keys(),输出值:info.items()