菜鸟学Python的日常(Python序列)

前言

  • 初学Python,姑妄言之,如有错误之处,恳请留言区指正

python序列类似于C等语言中的数组,但又被称为"打激素的"数组,因为它的功能比数组强大许多,序列分为有序序列(列表、元组、字符串、zip与map等)与无序序列(字典、集合),也分为可变序列(列表、字典、集合)与不可变序列(元组、字符串、zip与map等);python序列支持负数作为索引表示倒数第几个;

一、列表与列表推导式 (list)

  • 列表是Python最重要的内置可变序列之一,是包含若干元素的有序连续内存空间;
  • 列表所有元素放在"[ ]"之间,相邻元素用逗号隔开;
  • 列表增加或者删除元素时,列表对象自动进行内存的扩张与收缩,从而保证元素之间无缝隙;
  • 插入与删除非尾部元素会造成大量元素的移动,尽量避免;
  • 列表中各元素的类型可以各不相同;(Python采用基于值得内存管理模式,变量储存值的引用,因此可以)
  • 列表支持负数作为索引:a_list[-4]表示a_list的倒数第四个元素;

1、 列表的创建与删除

创建:直接用"="将一个列表赋值给一个变量即可 

        a_list1 = [1,2,3,4,"abc",'a',[5,6,7]]     #合法的列表对象

        也可以用list()函数将元组、字符串、字典、集合等其他可迭代对象转换为列表

        a_llist2 = list((1,2,3,4,5))                   #将元组转换为列表

        a_list3 = list({"a":1,"b":2,"c":3})    #将字典转换为列表,默认转换键,用items()函数转换键值对,用values()转换值;

删除:当一个列表不再使用时,用del命令将其删除,也可以使用del删除列表。字典等可变序列中的部分元素

        del a_list1                         #删除a_list1列表

        del a_list2[3]                     #删除了a_list的第四个元素(下标从0开始)[1,2,3,5]

        不可以删除元组等不可变序列的部分元素,会报错

2、 列表的常用方法

Ⅰ、append()、insert()、extend()增加元素

  • append(x)用于向列表尾部追加一个元素
  • insert(index,x)用于像列表指定位置插入一个元素
  • extend(L)用于将另一个列表中的所有元素追加至当前列表的后面

注意:这三个函数是在原地操作列表,不影响该对象地址,而用+与*增加元素会返回新列表、改变其地址;用+=也属于原地操作

#代码示例 

a_list = [1,2,3,4]; print(a_list)
print("初始地址:",id(a_list))            
a_list.append(5); print(a_list)           #调用三个函数后打印其值
a_list.insert(0,0); print(a_list)
a_list.extend([6,7]); print(a_list)
print("调用三个函数后:",id(a_list))

a_list += [5,6,7]; print(a_list)
print("用+=连接后:",id(a_list))          #使用+=连接不改变地址

a_list = a_list + [5,6,7]; print(a_list)  #使用+连接改变地址
print("用+连接后:",id(a_list))

#运行结果 

[1, 2, 3, 4]
初始地址: 1459194026560
[1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6, 7]
调用三个函数后: 1459194026560
[0, 1, 2, 3, 4, 5, 6, 7, 5, 6, 7]
用+=连接后: 1459194026560
[0, 1, 2, 3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7]
用+连接后: 1459194027200

Ⅱ、pop()、remove()、clear() 删除元素

 这三个方法用于删除列表中的元素:

  • pop([index])用于删除并返回指定位置上的一个元素
  • remove(x)用于删除列表中第一个值与指定值相等的元素
  • clear()用于清空列表

这三个操作也属于原地操作;也可以使用del删除列表中指定位置的元素,也为原地操作;

#代码示例

a_list = [0,1,2,3,2,5,6,7]
print("初始值:      ",a_list)
print("初始地址:",id(a_list))

print("pop()返回值: ",a_list.pop()) #无参数时删除最后一个
print("调用pop()后: ",a_list)  
print("pop(5)返回值:",a_list.pop(5))
print("调用pop(5)后:",a_list) 

a_list.remove(2)
print("调用remove(2)后:",a_list)

del a_list[0]                       #使用del命令删除第0个元素
print("使用del命令后:",a_list)
print("使用del命令后地址:",id(a_list))

a_list.clear()
print("调用clear()后:",a_list)
print("调用三个函数后地址:",id(a_list))

 #运行结果

初始值:       [0, 1, 2, 3, 2, 5, 6, 7]
初始地址: 1459195211904
pop()返回值:  7
调用pop()后:  [0, 1, 2, 3, 2, 5, 6]
pop(5)返回值: 5
调用pop(5)后: [0, 1, 2, 3, 2, 6]
调用remove(2)后: [0, 1, 3, 2, 6]
使用del命令后: [1, 3, 2, 6]
使用del命令后地址: 1459195211904
调用clear()后: []
调用三个函数后地址: 1459195
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值