3.Python-----基础篇(列表和元组)

一、序列

  • 成员有序排列的,且可以通过下标偏移量访问到它的一个或者几个成员,这类类型统称为序列。
  • 序列数据类型包括:字符串,列表,和元组类型。
  • 特点: 都支持下面的特性
    • 索引与切片操作符
    • 成员关系操作符(in , not in)
    • 连接操作符(+) & 重复操作符(*)

二、列表

  • 数组: 存储同一种数据类型的集和。scores=[12,95.5]
  • 列表(打了激素的数组): 可以存储任意数据类型的集和。
li = [1, 2, 3, [1, 2]]
print(li[0])    
print(li[::-1]) 
print(li[-1])   
print(li[-1][0])
print(li[3][-1])
  • 列表的拉伸(extend)
li = [1, 2, 3]
li.extend([5, 8, 7])
print(li)

在这里插入图片描述

  • 列表的添加(insert)
li = [1, 2, 3]
li.append(4)	#append追加元素到列表
print(li)

li = [1, 2, 3]
li.insert(0, 'cat')	#insert指定位置添加元素
print(li)
li = [1, 2, 3]
li.insert(0, 'cat')
li.insert(1, 'wes')
print(li)

在这里插入图片描述

  • 列表的修改
li = [1, 2, 3]
li[0] = 'westos'	# 修改列表的元素:直接重新赋值
li[-1] = 'redhat'
li[:2] = ['linux','cat']
print(li)

在这里插入图片描述

  • 列表的元素出现次数查看
li = [1,2,3,1,1,3]
print(li.index(1))  #索引
print(li.count(1))  #计算次数

在这里插入图片描述

  • 列表的删除(remove)
li = [1,2,3]
print(li.remove(1))	#删除指定元素
print(li.remove(2))
print(li)

print(li.clear())	#清扫所有
print(li)`

在这里插入图片描述

列表增删改查

    • count #次数
    • index #指定索引
    • append(尾加)
    • extend(拉伸)
    • insert(指定添加)
    • pop
    • remove
    • cleal
    • del li
    • 索引
    • 切片
  • 其他
    • copy
    • sort

三、元组

元组的创建,删除及特性

1). 定义空元组 tuple = ()

2). 定义单个值的元组 tuple = (fentiao,)

3). 一般的元组 tuple = (fentiao, 8, male)

元组的方法

  • t.count(value)–>int 返回value在元组中出现的次数;
  • t.index(value) 返回value在元组中的偏移量(即索引值)

多元赋值机制

  • x, y, z = 1, 2, ‘westos’ 等价于 (x, y, z) = (1, 2, ‘westos’) , 等号两边的对象都是元组并且元组的小括号是可选的。

变量交换

x=2; y=10;x, y = y, 2; print(x,y)
这种交换方式无需中间变量即可交换两个变量的值。那么具体实现机制是怎样的呢?

x=2;
y=10;
x, y = y, 2;
print(x,y)

在这里插入图片描述

实现机制:

1). 构造一个元组(y, x);
2). 构造另一个元组(x, y);
3). 元组(y, x)赋值给(x, y),元组赋值过程从左到右,依次进行

四、命名元组

  • collections.namedtuple(typename, field_names)
    • typename:类名称
    • field_names: 元组中元素的名称
from collections import namedtuple
User = namedtuple('User',['name','age','id'])
User = namedtuple('User','name age id')
user =User('张三','18','2021')
print(user.name)
print(user.age)
print(user.id)

在这里插入图片描述

is和==的区别

  • 1). Python中对象的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。

  • 2). is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。

  • 3). ==用来比较判断两个对象的value(值)是否相等;(type和value)
    is也被叫做同一性运算符, 会判断id是否相同;(id, type 和value)

五、深拷贝与浅拷贝

  • 赋值: 创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。(=)
  • 浅拷贝: 对另外一个变量的内存地址的拷贝,这两个变量指向同一个内存地址的变量值。(li.copy(), copy.copy())
    • 公用一个值;
    • 这两个变量的内存地址一样;
    • 对其中一个变量的值改变,另外一个变量的值也会改变;
n1 = [1,2,3,[1,2]]
n2 = n1.copy()
print(id(n1),id(n2))
print(id(n1[-1]),id(n2[-1]))
n1[-1].append(4)
print(n2)

在这里插入图片描述

  • 深拷贝: 一个变量对另外一个变量的值拷贝。(copy.deepcopy())
    • 两个变量的内存地址不同;
    • 两个变量各有自己的值,且互不影响;
    • 对其任意一个变量的值的改变不会影响另外一个;
#深拷贝
n1 = [1,2,3,[1,2]]
n2 = copy.deepcopy(n1)
print(id(n1),id(n2))
print(id(n1[-1]),id(n2[-1]))
n1[-1].append(4)
print(n2)

在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值