python基础知识学习Day3(运算、列表、元组)

可变字符串

使用io.StringIO对象或array模块。

>>> import io#导入io模块
>>> s="hello,sxt"
>>> sio=io.StringIO(s)#使用函数
>>> sio
<_io.StringIO object at 0x000001F75CD490D8>
>>> sio.getvalue()#查看可变字符串
'hello,sxt'
>>> sio.seek(7)#找到并定位索引7位置
7
>>> sio.write("g")#修改为“g”
1
>>> sio.getvalue()#查看变化后可变字符串
'hello,sgt'

运算符

基本运算符

在这里插入图片描述
Python允许这种形式
Python允许这种形式
位运算实例
在这里插入图片描述
移位实例

>>> a=3
>>> a<<1#a*2(2的1次方)
6
>>> a<<3#a*8(2的3次方)
24
>>> a=12
>>> a>>2#a除以2的平方的商(int型)
3
>>> a>>3#a除以2的3次方的商(int型)
1

小结
1.比较运算符可以连用,并且含义和我们日常完全一致。
2.位操作
注:与C和JAVA不一样,Python不支持自增(++)和自减(–)

复合赋值运算符

在这里插入图片描述

运算符优先级

1.乘除优先加减
2.位运算和算术运算>比较运算符>逻辑运算符
在这里插入图片描述

序列

常用序列结构:字符串、列表、元组、字典、集合
注:存储的是地址,而不是值。

列表

列表的元素可以各不相同,可以是任意类型。
列表大小可变,根据需要随时增加或缩小。
在这里插入图片描述
在这里插入图片描述

列表的创建

  1. 基本语法[]创建
>>> a=[1,'r',12]
>>> a
[1, 'r', 12]
  1. list()创建
>>> a=list("nihao")
>>> a
['n', 'i', 'h', 'a', 'o']

使用list()可以将任何可迭代的数据转化成列表。

  1. range()创建整数列表
    range([start,],end[,step])
>>> list(range(0,10,1))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(3,20,2))
[3, 5, 7, 9, 11, 13, 15, 17, 19]
>>> list(range(20,3,-1))
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]
>>> list(range(-10,-20,-2))
[-10, -12, -14, -16, -18]

  1. 推导式生成列表
>>> a=[x*2 for x in range(5)]
>>> a
[0, 2, 4, 6, 8]
>>> a=[x*2 for x in range(100) if x%9==0]
>>> a
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]

列表元素的增加和删除

一般只在列表的尾部添加和删除元素,这会大大提高列表的操作效率。
列表元素的增加

  1. append()速度最快,不创建新对象
>>> a=[1,13]
>>> id(a)
2161927160776
>>> a.append(20)
>>> a
[1, 13, 20]
>>> id(a)
2161927160776
  1. +运算符操作 创建新对象,不推荐
>>> a=a+[50]
>>> a
[1, 13, 20, 50]
>>> id(a)
2161927160712
  1. extend()不创建新对象,速度快
>>> a
[1, 13, 20, 50]
>>> a.extend([1,2])
>>> a
[1, 13, 20, 50, 1, 2]
  1. insert()插入元素 影响速度,不推荐
>>> a.insert(2,100)
>>> a
[1, 13, 100, 20, 50, 1, 2]

列表元素的删除

  1. del删除
>>> a=[10,20,30]
>>> a
[10, 20, 30]
>>> del a[1]
>>> a
[10, 30]
  1. pop()方法
    pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。
>>> a=[1,2,3,4,5]
>>> b=a.pop()
>>> b
5
>>> a
[1, 2, 3, 4]
  1. remove()方法
    删除首次出现的指定元素,若不存在该元素,抛出异常。
>>> a=[20,30,40,50,60]
>>> a.remove(30)
>>> a
[20, 40, 50, 60]
>>> a.remove(100)
Traceback (most recent call last):
  File "<pyshell#74>", line 1, in <module>
    a.remove(100)
ValueError: list.remove(x): x not in list

列表元素访问和计数

通过索引直接访问元素
我们可以通过索引直接访问元素。缩印的区间在[0,列表长度-1]这个范围。超过这个范围则会抛出异常。
a.index()获得指定元素在列表中首次出现的索引
a.count()获得指定元素在列表中出现的次数
len(a)返回列表长度
在这里插入图片描述
成员资格判断
in
not in
在这里插入图片描述
在这里插入图片描述

列表排序

  1. 修改原列表,不建新列表的排序
    a.sort()
>>> a=[1,3,2,5]
>>> id(a)
2161927206472
>>> a.sort()
>>> a
[1, 2, 3, 5]
>>> id(a)
2161927206472
>>> a.sort(reverse=True)
>>> a
[5, 3, 2, 1]

random.shuffle(a)

>>> import random
>>> random.shuffle(a)
>>> a
[3, 1, 5, 2]
>>> random.shuffle(a)
>>> a
[5, 2, 3, 1]
  1. 建新列表的排序
    sorted(a)
>>> a
[5, 2, 3, 1]
>>> id(a)
2161927206472
>>> a=sorted(a)
>>> a
[1, 2, 3, 5]
>>> id(a)
2161927160776
>>> a=sorted(a,reverse=True)
>>> a
[5, 3, 2, 1]

reversed()返回迭代器
不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。

>>> a
[5, 3, 2, 1]
>>> c=reversed(a)
>>> c
<list_reverseiterator object at 0x000001F75CE2E4A8>
>>> list(c)
[1, 2, 3, 5]

max()
min()
sum()

多维列表

二维列表

>>> a=[
	['高一',18,30000],
	['高二',19,20000],
	['高三',20,10000]
	]
>>> a
[['高一', 18, 30000], ['高二', 19, 20000], ['高三', 20, 10000]]
>>> a[0][0]
'高一'

元组 tuple

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

  1. 直接创建
>>> a=(10,20,30)#直接创建元组
>>> a
(10, 20, 30)
>>> type(a)
<class 'tuple'>
>>> a=10,20,30#直接创建元组
>>> a
(10, 20, 30)
>>> type(a)
<class 'tuple'>
>>> b=(1)
>>> type(b)
<class 'int'>
>>> b=(1,)#这种方式才是元组
>>> type(b)
<class 'tuple'>
  1. tuple()
>>> c='asdf'
>>> c=tuple(c)
>>> c
('a', 's', 'd', 'f')
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple(range(3))
(0, 1, 2)

元组的访问和处理速度比列表快!!

  1. 生成器推导器创建元组
    在这里插入图片描述
    只能访问一次元素,第二次为空,类似指针。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值