python中的基本数据类型之列表,元组

一.列表

1.什么是列表.

列表是python的基本数据类型之一,用[]来表示,可以存放各种数据类型(什么都能装,能装对象的对象)

列表相比于字符串,不仅可以存放不同类型的数据,而且可以存放大量的数据.

2.列表的索引和切片(列表和字符串一样,也拥有索引和切片)

列表切片切出来的内容依旧是列表.

2.1索引:

 

lst=['马化腾','马云','王健林','雷军','刘翔','萧敬腾']
print(lst[0])

lst=['马化腾','马云','王健林','雷军','刘翔','萧敬腾']
lst[2]='赖美云'
print(lst)#这里说明列表是可以发生改变的,与字符串不同,字符串每次操作 都会返回一个新的字符串
2.2切片
1 lst=['马化腾','马云','王健林','雷军','刘翔','萧敬腾']
2 print(lst[0:4])
3 
4 lst=['马化腾','马云','王健林','雷军','刘翔','萧敬腾']
5 print(lst[-1:-4:-2])   #倒着,带步长,跳着也可以取

二.列表的增删改查

1.增加

1.1append 追加

 

1 lst=['马化腾','马云','王健林','雷军','刘翔','萧敬腾']
2 print(lst)
3 lst.append('张杰')
4 print(lst)   
5 #########运行结果
6 ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
7 ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾', '张杰']  #在原列表的末尾加入新的东西.

1.2 insert(index, 元素) 在index位置添加元素

 

1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
2 lst.insert(1,'刘德华')    #在1位置插入刘德华,原来在一后面的元素就会向后移动一位
3 print(lst)
1.3 extend() 迭代添加
 1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
 2 lst.extend('大张伟')   #把输入的字符串一个一个迭代添加到列表的最后
 3 print(lst)
 4 #['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾', '大', '张', '伟']
 5 lst.extend(['霍元甲'])   #把字符串整个添加到列表的最后
 6 print(lst)
 7 #['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾', '大', '张', '伟', '霍元甲']
 8 lst.extend(['朱元璋','李白'])    #把多个字符串添加到列表的最后
 9 print(lst)
10 #['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾', '大', '张', '伟', '霍元甲', '朱元璋', '李白']

2.删除

2.1pop(index)按照位置删除元素
1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
2 lst.pop(2)    #删除2号元素,括号里什么也不写,默认删除最后一个
3 print(lst)
4 # ['马化腾', '马云', '王健林', '雷军', '刘翔']
2.2remove(元素)直接删除元素
1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
2 lst.remove("马云")   #删除知道元素具体内容的指定元素
3 print(lst)
4 #['马化腾', '王健林', '雷军', '刘翔', '萧敬腾']
5 lst.remove("哈哈")     #删除不存在的元素会报错
6 print(lst)
7 # ValueError: list.remove(x): x not in list报错内容
2.3del切片
1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
2 del lst[1:3]      #与前两个删除不同的是格式上要 del+空格+列表
3 print(lst)
4 # ['马化腾', '雷军', '刘翔', '萧敬腾']
2.4clear()清空列表
1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
2 lst.clear()
3 print(lst)
4 # []

3.修改 

3.1索引修改

1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
2 lst[1]='丘比特'   #把指定元素修改成指定内容
3 print(lst)
4 # ['马化腾', '丘比特', '王健林', '雷军', '刘翔', '萧敬腾']
3.2切片修改
lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
lst[1:4:3]=['杨幂','迪丽热巴']    #如果补偿不是一,要注意元素的个数
print(lst)
# ValueError: attempt to assign sequence of size 2 to extended slice of size 1
lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
lst[1:4]=['杨幂','迪丽热巴']    #如果步长是一,就不用关心元素的个数
print(lst)
#['马化腾', '杨幂', '迪丽热巴', '刘翔', '萧敬腾']

4.查询

列表是一个可迭代对象,所以可以进行for循环,分别输出列表中的每一个元素.

for el(元素) in lst:  

  print(el)

5.其他操作

5.1次数(count)

1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾'] 2 num=lst.count('马云') #查询马云出现的个数 3 print(num) 4 #1

5.2排序(sort)
lst = [1,2,3,9,4,5,6,8]
lst.sort()    #排序,默认升序
print(lst)
#[1, 2, 3, 4, 5, 6, 8, 9]
 
lst = [1,2,3,9,4,5,6,8]
lst.sort(reverse=True)    #降序 
print(lst)
#[9, 8, 6, 5, 4, 3, 2, 1]
5.3反转(reverse)
1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
2 lst.reverse()    #反转
3 print(lst)
4 #['萧敬腾', '刘翔', '雷军', '王健林', '马云', '马化腾']
5.4长度(len)
1 lst = ['马化腾', '马云', '王健林', '雷军', '刘翔', '萧敬腾']
2 lst.reverse()    #反转
3 print(lst)
4 #['萧敬腾', '刘翔', '雷军', '王健林', '马云', '马化腾']

三.列表的嵌套

采用降维的操作,一层一层的看lst=[1,'hua',5,'会有鬼',[1,5,'发过火',54,[5,5,6,'fgh','法国红酒']]]

 print(lst[3])    #找到会有鬼
 print(lst[2:4])    #找到5和会有鬼
 print(lst[3][2])    #找到会有鬼的鬼字
 s=lst[1]            #拿到hua,将首字母大写,再扔回去
 s=s.capitalize()    #
 lst[1]=s            #
 print(lst)          #

lst=[1,'hua',5,'会有鬼',[1,5,'发过火',54,[5,5,6,'fgh','法国红酒']]]          #把发过火改成发过水
lst[4][2]=lst[4][2].replace('','')     #要定位到发过火,不要定位到火,才能改
print(lst)
#[1, 'hua', 5, '会有鬼', [1, 5, '发过火', 54, [5, 5, 6, 'fgh', '法国红酒'], '雪碧']]

四.元组和元组嵌套

俗称不可变的列表,又被称为只读列表,元组也是python的只读列表之一用()括起来,里面可以放任何数据类型的数据,但是不能改.

1 tu=(1,'太白','李白','太黑','怎么黑')
2 print(tu)
3 print(tu[0])
4 print(tu[1])
5 print(tu[1:4])
6 4.1for循环便利元组
7 for el in tu:
8   print(el)

五.range

 range可以帮我获取到一组数据通过for循环打印这组数据

1 for i in range(0,101,2):
2     print(i)
posted @ 2018-07-31 16:19  ★行者尚★  阅读(839)  评论(0编辑  收藏  举报