Python基础学习05

Posted 落晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础学习05相关的知识,希望对你有一定的参考价值。

列表

列表就有顺序的数据的组合

说到顺序,就能想到字符串中提到的序列(suqence);列表同样有序列,而且他的序列与字符串一致!如下图

创建列表

# 1、创建一个空列表
list1 = []
# # type是内置函数,查看数据的类型
print(\'list1的数据类型为:\',type(list1))
print(\'list1 = \',list1)

# 创建存在数据的列表
list2 = [33]
print(\'list2的数据类型为:\',type(list2))
print(\'list2 = \',list2)

# 创建存在多数据的列表
list3 = [3,1,5,7,9]
print(\'list3的数据类型为:\',type(list3))
print(\'list3 = \',list3)

输出的结果如下:

list1的数据类型为: <class \'list\'>
list1 =  []
list2的数据类型为:
<class \'list\'> list2 = [33]
list3的数据类型为:
<class \'list\'> list3 = [3, 1, 5, 7, 9]

列表中的数据可包含python中所有的数据类型

l1 = \'我是变量\'
list4 = [1,1.1,l1,\'字符串\',True,1+1,[4/2,3],]
print(\'list4的数据类型为:\',type(list4))
print(\'list4 = \',list4)

输出结果如下:

list4的数据类型为: <class \'list\'>
list4 =  [1, 1.1, \'我是变量\', \'字符串\', True, 2, [2.0, 3]]

 列表的sequence(序列)操作

上文有提到,列表同字符串一样,是有序列的,存在序列,就支持切片操作!

l1 = \'我是变量\'
list5 = [1,1.1,l1,\'字符串\',True,1+1,[4/2,3],]
print(\'list5的值:\',list5)
# 查看列表中某一值
print(\'list5[4]的值:\',list5[4])

# 查看列表中字符串中某一元素
print(\'list5[3][1]的值:\',list5[3][1])
# 查看列表中的列表中某一元素
print(\'list5[-1][1]的值:\',list5[-1][1])

# 切片操作
# 再次强调,切片操作所切内容左含右不含!
print(\'list5[1:4]的值:\',list5[1:4])
# 切片操作可以设置步长,且步长默认为1 print(\'list5[1:4]的值:\',list5[1:4:2])
# 下标可以超出列表长度 print(\'list5[4:11]的值:\',list5[4:11]) # 所切的下标值可以为空,即左边下标值默认为0,右边默认值为最大下标+1 print(\'list5[:]的值:\',list5[:]) print(\'list5[1:]的值:\',list5[1:]) print(\'list5[:4]的值:\',list5[:4]) # 切片同样可以对负下标进行操作 print(\'list5[-5:-1]的值:\',list5[-5:-1])

输出结果如下:

[1, 1.1, \'我是变量\', \'字符串\', True, 2, [2.0, 3]]

list5[4]的值: True

list5[3][1]的值: 符
list5[-1][1]的值: 3

list5[1:4]的值: [1.1, \'我是变量\', \'字符串\']
list5[1:4:1]的值: [1.1, \'字符串\']
list5[4:11]的值: [True, 2, [2.0, 3]]

list5[:]的值: [1, 1.1, \'我是变量\', \'字符串\', True, 2, [2.0, 3]]
list5[1:]的值: [1.1, \'我是变量\', \'字符串\', True, 2, [2.0, 3]]
list5[:4]的值: [1, 1.1, \'我是变量\', \'字符串\']

list5[-5:-1]的值: [\'我是变量\', \'字符串\', True, 2]

切片操作生成的是一个全新的列表

# 这里引用一个内置函数id(),作用是显示出一个变量或者数据的唯一确定编号
# 例如:
a = 1
b = \'1\'
print(\'a的id为:\',id(a))
print(\'b的id为:\',id(b))

c = a
print(\'c的id为:\',id(c))

输出结果如下:

a的id为: 1467867920
b的id为: 18602144

c的id为: 1467867920

以下对切片操作进行校验,生成的列表是否为新列表

# 通过id可以直接判断出分片是从新生成了一份数据还是使用的同一份数据
list6 = [3,\'3\',101,5.5]
list7 = list6[:]
list8 = list7

# 如果两个id值一样,则表明分片产生的列表是使用的同一地址同一份数据
# 否则,则表明切片是从新生成了一份数据,即一个新的列表,然后把数值拷贝到新列表中
print(\'list6的id为:\',id(list6))
print(\'list7的id为:\',id(list7))
print(\'list8的id为:\',id(list8))

输出结果如下:

list6的id为: 47179336

list7的id为: 47179416

list8的id为: 47179416

可以看到list7是由list6切片而来,然而id(list6) != id(list7)

 列表的常用方法

1、append()

    在列表的尾部增加一个元素

list9 = [1,2,3,4]
print(\'list9-前 :\',list9)

list9.append(5)
print(\'list9-后 :\',list9)
list9-前 : [1, 2, 3, 4]
list9-后 : [1, 2, 3, 4, 5]

2、insert()

    在列表的指定位置添加元素

list9 = [1,2,3,4]
print(\'list9-前 :\',list9)

list9.insert(2,5)       # 在列表的下标值为2的位置添加5
print(\'list9-后 :\',list9)
list9-前 : [1, 2, 3, 4]
list9-后 : [1, 2, 5, 3, 4]

3、del

     删除列表中指定下标的元素

list9 = [1,2,3,4]
print(\'list9-前 :\',list9)

del list9[1]        # 删除列表下标值为1的元素
print(\'list9-后 :\',list9)
list9-前 : [1, 2, 3, 4]
list9-后 : [1, 3, 4]

4、pop()

    移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list9 = [1,2,3,4]
print(\'list9-前 :\',list9)

a = list9.pop()
print(\' 移除的值 :\',a)
print(\'list9-后 :\',list9)
list9-前 : [1, 2, 3, 4]

 移除的值 : 4
list9-后 : [1, 2, 3]

5、remove()

    移除列表中某个值的第一个匹配项

list9 = [1,2,3,4,3]
print(\'list9-前 :\',list9)

list9.remove(3)     # 移除第一个元素为3的值
print(\'list9-后 :\',list9)
list9-前 : [1, 2, 3, 4, 3]
list9-后 : [1, 2, 4, 3]

6、clear()

    清空列表

list9 = [1,2,3,4,3]
print(\'list9-前 :\',list9)

list9.clear()
print(\'list9-后 :\',list9)
list9-前 : [1, 2, 3, 4, 3]
list9-后 : []

7、extend()

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

list9 = [1,2,3,4,3]
print(\'list9-前 :\',list9)
print(\'list9-前 :\',id(list9))

list10 = [1,1,1,1]
print(\'list10 :\',list10)

list9.extend(list10)
print(\'list9-后 :\',list9)
print(\'list9-后 :\',id(list10))
list9-前 : [1, 2, 3, 4, 3]
list9-前 : 58006344

list10 : [1, 1, 1, 1]

list9-后 : [1, 2, 3, 4, 3, 1, 1, 1, 1]
list9-后 : 59155240

8、count()

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

list9 = [1,2,3,4,3]
print(\'list9 :\',list9)

n = list9.count(3)
print(\'3在列表中出现:\',n,\'\')
list9 : [1, 2, 3, 4, 3]
3在列表中出现: 2 次

9、reverse()

    翻转列表内容,原地翻转

list9 = [1,2,3,4,3]
print(\'list9-前 :\',list9)


list9.reverse()
print(\'list9-后 :\',list9)
list9-前 : [1, 2, 3, 4, 3]
list9-后 : [3, 4, 3, 2, 1]

10、sort()

    列表正序排列

list9 = [1,2,3,4,3]
print(\'list9-前 :\',list9)

list9.sort()
print(\'list9-后 :\',list9)
list9-前 : [1, 2, 3, 4, 3]
list9-后 : [1, 2, 3, 3, 4]

 

以上是关于Python基础学习05的主要内容,如果未能解决你的问题,请参考以下文章

《Python学习之路 -- Python基础之切片》

学习笔记:python3,代码片段(2017)

Python 函数声明和调用

[vscode]--HTML代码片段(基础版,reactvuejquery)

如何在 python 中并行化以下代码片段?

Python学习(22):模块