Python基础四 数据类型(list,tuple)

一.列表(list)

列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

li= [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

1.列表的索引,切片

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
# 索引
print(l1[0])
print(l1[4])
print(l1[-2])

# 输出结果:
# alex
# taibai
# 3

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
# 切片
print(l1[0:4])
print(l1[2:-2])
print(l1[1::2])
print(l1[-1:1:-2])
# 输出结果:
# ['alex', True, 'wusir', 'ritian']
# ['wusir', 'ritian', 'taibai']
# [True, 'ritian', 3]
# [2, 'taibai', 'wusir']
list的索引和切片

 

2.列表的增删改查

2.1增

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
# 增(三种方式)
'''
# 第一种 append  增加在最后
ret = l1.append('醉了')
print(l1)
# 输出结果:
# ['alex', True, 'wusir', 'ritian', 'taibai', 3, 2, '醉了']



# 第二种 insert  插入在该索引原来对应的位置的前面
ret = l1.insert(2,'醉了')
print(l1)
# 输出结果:
# ['alex', True, '醉了', 'wusir', 'ritian', 'taibai', 3, 2]



#第三种 extend   迭代增加在最后
ret = l1.extend('abcd')
print(l1)         输出结果: ['alex', True, 'wusir', 'ritian', 'taibai', 3, 2, 'a', 'b', 'c', 'd']
ret = l1.extend('a,b,c')
print(l1)          输出结果:['alex', True, 'wusir', 'ritian', 'taibai', 3, 2, 'a', ',', 'b', ',', 'c']
ret = l1.extend(['a,b','cd'])
print(l1)           输出结果:['alex', True, 'wusir', 'ritian', 'taibai', 3, 2, 'a,b', 'cd']
list的增

 

2.2删

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
# 删 (四种方式)

# 第一种   pop     按照索引对应位置删除,有返回值

ret = l1.pop(0)
# print(ret)      输出结果:alex     返回值
print(l1)
# 输出结果:[True, 'wusir', 'ritian', 'taibai', 3, 2]

# 第二种 remove 按照元素删除

ret = l1.remove('ritian')
print(l1)
# 输出结果:[True, 'wusir', 'taibai', 3, 2]

# 第三种 clear  清空列表

ret = l1.clear()
print(l1)
# 输出结果:[]

# 第四种  del

# 1.删除列表

del l1

# 2.按索引删除

del l1[1]
print(l1)
# 输出结果:['alex', 'wusir', 'ritian', 'taibai', 3, 2]

# 3.按切片删除

del l1[0:4]
print(l1)
# 输出结果:['taibai', 3, 2]

del l1[1::2]
print(l1)
# 输出结果:['alex', 'wusir', 'taibai', 2]

del l1[-1:1:-2]
print(l1)
# 输出结果:['alex', True, 'ritian', 3]
list的删

 

2.3改

l1 = ['alex',True,'wusir','ritian','taibai',3,2]

# 1.按照索引去改,对应的变量:数字,字符串,列表都可以


l1[0] = '12'
print(l1)
# 输出结果:['12', True, 'wusir', 'ritian', 'taibai', 3, 2]

l1[0] = 12
print(l1)
# 输出结果:[12, True, 'wusir', 'ritian', 'taibai', 3, 2]


# 2.按照切片去改


l1[0:2] = 'qaz',12
print(l1)
# 输出结果:['qaz', 12, 'wusir', 'ritian', 'taibai', 3, 2]
l1[0:3:2] = 'qaz',12
print(l1)
# 输出结果:['qaz', True, 12, 'ritian', 'taibai', 3, 2]
list的改

 

2.4查

l1 = ['alex',True,'wusir','ritian','taibai',3,2]

# 查 (两种方式)

# 第一种 按照索引,切片去查
# 1.索引
l1[0]
print(l1[0])
# 输出结果:alex

# 2.切片
l1[0:3]
print(l1[0:3])
# 输出结果:['alex', True, 'wusir']


# 第二种  for 循环查找
for i in l1:
    print(i)
# 输出结果:
alex
True
wusir
ritian
taibai
3
2
list的查

 

2.5其他操作

len(长度)(方法计算列表中出现的元素的总位数)

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
ret = len(l1)
print(ret)
# 输出结果;  7

 

count(数)(方法统计某个元素在列表中出现的次数)

l1 = ['alex',True,'wusir','ritian','alex','taibai',3,'alex',2]
ret = l1.count('alex')
print(ret)
# 输出结果:  3

 

index(方法用于从列表中找出某个值第一个匹配项的索引位置)

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
ret = l1.index('taibai')
print(ret)
# 输出结果:    4

 

sort (方法用于在原位置对列表进行排序,默认从小到大)

l1 = [1,3,6,8,7,4,2,9,5,10]
l1.sort()     # 他没有返回值,只是改变了l1的顺序,所以只能打印l1
print(l1)
# 输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

l1.sort(reverse=True)
print(l1)
# 输出结果:[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

reverse (方法将列表中的元素反向存放)

l1 = [1,3,6,8,7,4,2,9,5,10]
l1.reverse()
print(l1)
# 输出结果:[10, 5, 9, 2, 4, 7, 8, 6, 3, 1]

 

3.列表的嵌套

l1 = ['小新','egon','wusir',[99,'taibai','ritian',[2,3]],2]

# 把'taibai'首字母大写
a = l1[3][1].capitalize()
l1[3][1] = a          #这两行可以简写成: l1[3][1] = l1[3][1].capitalize()
print(l1)
# 输出结果:
# ['小新', 'egon', 'wusir', [99, 'Taibai', 'ritian', [2, 3]], 2]


# 把l1中的99变成'100'
l1[3][0] = str(l1[3][0] + 1)
print(l1)
# 输出结果:
# ['小新', 'egon', 'wusir', ['100', 'Taibai', 'ritian', [2, 3]], 2]
list的嵌套

 

二.元组(tuple)

元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")

tu = (1,2,'wusir','taibai',[2,3,4,],True)

print(tu[2:])
# 输出结果:
# ('wusir', 'taibai', [2, 3, 4], True)

# 把元组内元素依次打印出来
for i in tu:
    print(i)
'''
输出结果:
1
2
wusir
taibai
[2, 3, 4]
True
'''

#元素不能更改,但是元素内的元素有可能更改(其内的元素是列表,之后按照列表的操作方法操作就可以)

# 比如我们可以把tu中的3改成'姓名'
tu[4][1] = '姓名'
print(tu)
# 输出结果:
# (1, 2, 'wusir', 'taibai', [2, '姓名', 4], True)
tupe的一些操作

 

三.range

range指定范围,生成指定数字,一般与for配合使用

for i in range(0,10):
    print(i)
'''
输出结果:
0
1
2
3
4
5
6
7
8
9
'''

# 把l1 = [1,2,3,'alex',[2,3,'wusir'],7]中的所有元素依次打印出来

l1 = [1,2,3,'alex',[2,3,'wusir'],7]
for i in l1:
    if type(i) == list:
        for j in i:
            print(j)
    else:
        print(i)
'''
输出结果:
1
2
3
alex
2
3
wusir
7
'''
range的用法

 

for i in range(1,10,2):
    print(i)                                   #[1,3,5,7,9]
for i in range(10,0,-1):
    print(i)                       #[10,9 ,8 ,7 ,6, 5,4,3,2,1]
for i in range(10,-2,-1):
    print(i,type(i))               #[10,9 ,8 ,7 ,6, 5,4,3,2,1,0,-1]

 

posted @ 2018-01-24 16:42  忆殇★伤忆  阅读(342)  评论(0编辑  收藏  举报