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()

 

 

 

 

 

 

 

 

 

 

 

 

  

 

posted @ 2018-04-13 00:30  joe.chu  阅读(230)  评论(0)    收藏  举报