Day 3

本文详细介绍了Python中的列表和元组操作,包括可变字符串、比较运算符、位操作、运算符优先级、序列概念、列表的创建、元素增删改查、切片操作、排序方法、多维列表以及元组的创建和访问。重点讨论了列表的常用方法如append、extend、insert、pop等,并提到了元组的不可变特性及其在字典中的应用。
摘要由CSDN通过智能技术生成

可变字符串

在pyhton中,字符串不可变。可以使用io.StringIO对象或array模块原地修改字符串。

import io
s='hello,sxt'
sio=io.StringIO(s)
print(sio.getvalue())
sio.seek(7)
sio.write('g')
print(sio.getvalue())

比较运算符可以连用

3<a<10

位操作

  • &=按位与

  • |=按位或

  • ^=按位异

  • <<左移1位相当于乘以2;左移两位相当于乘以4

  • >>右移1位相当于除以2;右移两位相当于除以4

运算符优先级问题

复杂表达式一定要使用小括号组织

  1. 先乘除,后加减

  2. 位运算和算术运算>比较运算符>赋值运算符
    在这里插入图片描述

序列

序列是一种数据存储方式,用来存储一系列的数据。在内容中,序列就是一块用来存放多个值的连续的内存空间。
在这里插入图片描述

常见的序列结构有:字符串、列表、元祖、字典、集合

列表:

用于存储任意数目、任意类型的数据集合。

列表的大小可变。
在这里插入图片描述在这里插入图片描述

列表的创建

基本语法[]创建

a=[]

list()创建

list可以将任何可迭代的数据转变成列表

a=list('zifuchuan')

range()创建整数参数

range([start,]end[,step])
  • start可选,表示起始数字,默认0

  • end必选,表示结尾数字

  • step可选,表示步长,默认1

推导式生成列表

a=[x*2 for x in range(5)] #循环创建多个元素

a=[x*2 for x in range(100) if x%9==0] #通过if过滤元素

列表元素的增加和删除

append()

原地修改列表对象,尾部添加新元素,速度最快,推荐使用

a=[20,40]

print(a.append(80))

+运算符操作

将原列表元素和新列表元素依次复制到新的列表对象中。涉及大量复制操作,操作大量元素不建议使用。

extend()

将目标列表所有元素添加到尾部,不创建新的列表对象。两个列表整合时推荐使用

insert()

指定元素插入到列表对象的任意位置。涉及大量元素时,尽量避免使用。类似移动函数还有:remove()、pop()、del(),他们在删除非尾部元素是也会元素移动。

乘法拓展

a=['a',100]
b=a*3
print(b)

列表元素的删除

del删除

删除列表指定位置的元素

a=[10,20,30]
del a[1]
print(a)

pop()方法

pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个位置

a=[10,20,30]
b=a.pop()
print(b)

remove()方法

删除首次出现的指定元素,不存在则异常

列表元素访问和计数

通过索引直接访问元素

索引区间[0,列表长度-1],超过范围则报错

index()获得指定元素在列表中首次出现的索引

语法:index(value,[start,[end]])

a=[10,20,30,40,50]

a.index(50,3)

count()获得指定元素在列表中出现的次数

a=[10,20,30,20,50]

a.count(20)

len()返回列表长度

列表中元素的个数

成员资格判断

in关键字判断

a=[10,20,30,40,50]

20 in a

列表切片操作

典型操作
在这里插入图片描述
在这里插入图片描述切片不在范围内也不会报错。起始偏移量小于0则会被当成0,终止偏移量大于长度-1则会被当成长度-1

列表遍历

for obj in listObj:
    print(obj)

列表排序

修改原列表,不生成新列表的排序

a=[40,10,20,30]
a.sort()   #默认升序
a.sort(reverse=True)   #降序排列

import random
random.shuffle(a) #随机打乱顺序

建新列表的排序

内置函数sorted(),这个方法返回新列表,不对原列表修改

a=[40,10,20,30]

a=sorted()

c=sorted(a,reverse=True)

reversed()返回迭代器

内置函数reversed()也支持逆序排列,不对原列表做修改。

max和min

返回列表中的最大最小值

sum

对数值型列表所有列表求和,非数值型报错

多维列表

二维列表

  • 一维列表帮助存储一维、线性的数据。

  • 二维列表帮助存储二维、表格的数据。

a=[
['高一'183000'北京']
['高二'172000'上海']
['高三'191000'深圳']
 ]
print(a[0][3])

嵌套循环打印二维列表的所有数据

a=[
['高一'183000'北京']
['高二'172000'上海']
['高三'191000'深圳']
    ]

for m in range(3):
    for n in range(4):
        print(a[m][n],end='\t')
    print()#打印完一行,换行

元组tuple

可以修改列表中的元素,元组属于不可变序列。

元组支持如下操作:

  1. 索引访问

  2. 切片操作

  3. 连接操作

  4. 成员关系操作

  5. 比较运算操作

  6. 计数

元组的创建

  1. 通过()

    a =(10,20,30) #小括号可以省略
    
    a=(20,) #单元素加逗号
    
  2. 通过tuple()

    b=tuple(可迭代的对象)
    

元组对象删除 del b

元组的元素访问和计数

  1. 元组的元素不能修改

  2. 访问和列表一样,返回的仍然是元组

  3. 如果要对元组排序,只能用sorted()生成新的列表对象

Zip

将多个列表对应位置的元素组合成为元组,并返回这个zip对象。

生成器推导式创建元组

生成器推导式用的小括号。生成器生成生成器对象,再转化成元组。

s=(x*2 for x in range(5))
print(tuple(s))  #只能访问一次元素,第二次就为空了。需要再生成一次。
print(s._next_()) #指针下移

元组可以作为字典的键,列表不行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值