刻意练习Python基础 ——day 03:列表与元组(上)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43968103/article/details/102673976
17天 —— Python基础刻意练习

Day 01——Task01:变量、运算符与数据类型
Day 02——Task02:条件与循环
Day 03——Task03:列表与元组(上)
Day 04——Task03:列表与元组(下)
Day 05——Task04:字符串与序列
Day 06——Task05:函数与Lambda表达式(上)
Day 07——Task05:函数与Lambda表达式(下)
Day 08——Task06:字典与集合
Day 09——Task07:文件与文件系统(上)
Day 10——Task07:文件与文件系统(下)
Day 11——Task08:异常处理
Day 12——Task09:else 与 with 语句
Day 13——Task10:类与对象(上)
Day 14——Task10:类与对象(下)
Day 15——Task11:魔法方法(上)
Day 16——Task11:魔法方法(下)
Day 17——Task12:模块
  


列表与元组





  在Python中,若将int整型、float浮点型、bool布尔型和str字符串单个数据,则可以将这些数据都放在一个容器里得到一个 「容器类型」序列,比如:列表(List)元组(Tuple)、字典(Dict)、集合(Set)。

  Python有6个序列的内置类型,序列都可以进行的操作包括索引切片检查成员
  此外,Python已经内置确定序列的长度以及确定最大最小的元素的方法。

1.列表List

  • 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
  • 列表的数据项不需要具有相同类型
  • 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['Mive','-Vax', 5, 3];
list2 = [1, 2, 3, 4, 5 ];
list3 = ['Mive','-Vax', [3, 5]];

  与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。


 1.1访问列表中的值

  使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
在这里插入图片描述

list1 = ['Mive','-Vax', 5, 3]
sample = [1, 2, 3, 4, 5, 6, 7, 8, 9 ]
 
print ("list1[0]: ", list1[0])
print ("sample[3:5]: ", sample[3:5])
print ("sample[-5:-3]: ", sample[-5:-3])

# list1[0]:  Mive
# sample[3:5]:  [4, 5]
# sample[-5:-3]:  [5, 6]



 1.2向列表添加元素


  1.2.1通过 list.append(obj)方法

  append(obj) 在列表末尾添加新对象只接受一个参数,参数可以是任何数据类型,被追加的元素在 list 中保持着原结构类型。

list1 = ['Mive','-Vax', 5]
list1.append('3')
print ("更新后的列表 : ", list1)
# 更新后的列表 :  ['Mive', '-Vax', 5, '3']

  注意:append()方法与 + 连接操作符还是存在差异的。 + 连接操作符两端的类型需要一致。

list1 = ['Mive','-Vax', 5]
list2 = 3
list1.append(list2)
print ("更新后的列表 : ", list1)
# 更新后的列表 :  ['Mive', '-Vax', 5, 3]

list1 = ['Mive','-Vax', 5]
list2 = 3
list1 += list2
print ("更新后的列表 : ", list1)
# TypeError: 'int' object is not iterable

  1.2.2通过list.extend(seq)方法

  extend(seq) 方法用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

list1 = ['Mive','-Vax']
list1.extend([5,'3'])
print ("更新后的列表 : ", list1)
# 更新后的列表 :  ['Mive', '-Vax', 5, '3']

  1.2.3通过list.insert(index, obj))方法

  insert(index, obj))方法用于将指定对象obj插入列表的指定位置index

list1 = ['Mive', 5, 3]
list1.insert(1, '-Vax')
print ("更新后的列表 : ", list1)
# 更新后的列表 :  ['Mive', '-Vax', 5, 3]




 1.3修改列表中的值

  直接通过下标索引来修改列表中的值

list1 = ['Mive', '-Vax'5, 3]
print ("列表:", list1)
list1[2] = 8
print ("更新后的列表:", list1)
# 列表: ['Mive', '-Vax', 5, 3]
# 更新后的列表: ['Mive', '-Vax', 8, 3]



 1.4删除列表中的值


  1.4.1通过 list.remove(obj) 方法

  不需要知道参数的索引值,只需要知道参数的值既可完成删除

list1 = ['Mive', '-Vax', 5, 3]
print ("列表:", list1)
list1.remove('Mive')
print ("更新后的列表:", list1)
# 列表: ['Mive', '-Vax', 5, 3]
# 更新后的列表: ['-Vax', 5, 3]

  注意:若删除list中不存在的值,则会报错。


  1.4.2通过 del 语句

  可以使用 del 语句来删除列表的一个或多个元素

list1 = ['Mive', '-Vax', 5, 3]
del list1[1], list[2]
print (list1)
# ['Mive', 3]

  也可以使用 del 语句来删除列表

list1 = ['Mive', '-Vax', 5, 3]
del list1
print (list1)
# NameError: name 'list1' is not defined

  1.4.3通过 list.pop([index=-1]) 语句

  因为Python中的List是利用stack栈这种数据结构进行存储的,所以可以使用pop弹栈弹出元素,故存在返回值

list1 = ['Mive', '-Vax', 5, 3]
num = list1.pop()
print (list1,num)
# ['Mive', '-Vax', 5] 3

list1 = ['Mive', '-Vax', 5, 3]
list1.pop(1)
print (list1)
# ['Mive', 5, 3]



 1.5列表分片与拼接


  1.5.1列表分片

  Python的列表截取与字符串操作类型为list[start : stop : step]
  意为索引下标从start开始到stop - 1步长为step,复制出一个新的列表。

list1 = ['Mive', '-Vax', 5, 3,'Mive1', '-Vax1', 51, 31]
print(linst[1:5])		# ['-Vax', 5, 3, 'Mive1']
print(linst[1:])		# ['-Vax', 5, 3, 'Mive1', '-Vax1', 51, 31]
print(linst[:5])		# ['Mive', '-Vax', 5, 3, 'Mive1']
print(linst[:])			# ['Mive', '-Vax', 5, 3, 'Mive1', '-Vax1', 51, 31]
print(linst[1:7:2])		# ['-Vax', 3, '-Vax1']
print(linst[::-1])		#[31, 51, '-Vax1', 'Mive1', 3, 5, '-Vax', 'Mive']

  注意:若令step = -1,相当于将列表翻转。


  1.5.2列表拼接

   列表拼接有两种方式,用 ’ + ’ 连接操作符’ * ’ 重复操作符 ,前者首尾拼接,后者复制拼接。

list1 = ['Mive', '-Vax', 5, 3]
list2 = ['Mive1', '-Vax1', 51, 31]

print(list1 + list2)	# ['Mive', '-Vax', 5, 3, 'Mive1', '-Vax1', 51, 31]
print(list1 * 3)		# ['Mive', '-Vax', 5, 3, 'Mive', '-Vax', 5, 3, 'Mive', '-Vax', 5, 3]



  1.5.3嵌套列表

  使用嵌套列表即在列表里创建其它列表,例如:

list1 = ['Mive', '-Vax', 5, 3]
list2 = ['Mive1', '-Vax1', 51, 31]
list3 = [list1, list2]
print(list3)			# [['Mive', '-Vax', 5, 3], ['Mive1', '-Vax1', 51, 31]]
print(list3 [1])		# ['Mive1', '-Vax1', 51, 31]
print(list3 [0][1])		# -Vax




 1.6列表的常用操作符


  1.6.1比较操作符

  即>>=<<===!=

list0 = [5, 3]
list1 = [5, 31]
list2 = [51, 3]
print(list0 > list2)		# False
print(list0 > list1)		# False
print(list1 > list2)		# False

  1.6.2逻辑操作符

  即andornot

list0 = [5, 3]
list1 = [5, 31]
list2 = [51, 3]
print(list0 > list2 and list0 > list1)		# False
print(list0 > list2 or list0 > list1)		# False
print(not(list1 > list2))					# True

  1.6.3成员关系操作符

  即innot in

list1 = ['Mive', '-Vax', 5, 3]
print(5 in list1)			# True
print(51 not in list1)		# True



 1.7列表的一些其他函数&方法


  1.7.1列表函数


   1.7.1.1 len(list) 函数

   len(list) 函数返回列表元素个数。

list1 = ['Mive', '-Vax', 5, 3]
print (len(list1))				# 4
list2=list(range(5)) 			
print (list2, len(list2))		# [0, 1, 2, 3, 4] 5

   1.7.1.2 max(list) 函数

   max(list) 函数返回列表元素最大值

list1 = ['Mive', '-Vax', '5', '3']
list2=list(range(5)) 
print ("list1 最大元素值 : ", max(list1))
print ("list2 最大元素值 : ", max(list2))
# list1 最大元素值 :  Mive
# list2 最大元素值 :  4

   1.7.1.3 min(list) 函数

   min(list) 函数返回列表元素最小值

list1 = ['Mive', '-Vax', '5', '3']
list2=list(range(5)) 
print ("list1 最小元素值 : ", min(list1))
print ("list2 最小元素值 : ", min(list2))
# list1 最小元素值 :  -Vax
# list2 最小元素值 :  0

   1.7.1.4 list(seq)函数

   将元组转换为列表

tuple1 = ('Mive', '-Vax', '5', '3')
print (tuple1, type(tuple1))
list1=list(tuple1) 
print (list1, type(list1))

# ('Mive', '-Vax', '5', '3') <class 'tuple'>
# ['Mive', '-Vax', '5', '3'] <class 'list'>




  1.7.2列表的一些其他方法


   1.7.2.1 count(obj)方法

  统计某个元素在列表中出现的次数。

list1 = ['Mive', '-Vax', '5', 3]
list1 *= 8
print ("3 元素个数 : ", list1.count(3))
# 3 元素个数 :  8

   1.7.2.2 reverse()方法

  reverse() 方法用于反向列表中元素。

list1 = ['Mive', '-Vax', '5', 3]
list1.reverse()
print (list1)
# [3, '5', '-Vax', 'Mive']
print (list1[::-1])
# ['Mive', '-Vax', '5', 3]

   1.7.2.3 sort()方法

  sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
  list.sort( key=None, reverse=False)

  • key — 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse — 排序规则,reverse = True 降序, reverse = False 升序(默认)。
list1 = ['b', 'a', 'd', 'c', 'e']
list1.sort()
print ( '升序输出:', list1 )
list1.sort(reverse=True)
print ( '降序输出:', list1 )
# 升序输出: ['a', 'b', 'c', 'd', 'e']
# 降序输出: ['e', 'd', 'c', 'b', 'a']
def takeSecond(list1):
    return list1[1]
list1 = [[0,5],[2,2],[7,3],[5,4],[1,8]]
list1.sort(key=takeSecond)
print('排序列表:', list1)
# 排序列表: [[2, 2], [7, 3], [5, 4], [0, 5], [1, 8]]

   1.7.2.4 clear()方法

  clear() 方法用于清空列表,类似于 del list[:]

list1 = ['Mive', '-Vax', '5', 3]
list1.clear()
print("列表清空后 : " , list1)
# 列表清空后 : []

   1.7.2.5 copy()方法

  copy() 方法用于复制列表,类似于 list[:]

list1 = ['Mive', '-Vax', '5', 3]
list2 = list1.copy()
print ("list2 列表: ", list2)
# list2 列表:  ['Mive', '-Vax', '5', 3]

猜你喜欢

转载自blog.csdn.net/weixin_43968103/article/details/102673976