python_DAY03

一、列表

列表:大小可变,可随意增加减少数据

  • | 按位或 有1就是1 全0才为0 类似于or
    & 按位与 全1才是1 有0就是0 类似于and
    ^ 按位异或 相同为1 不同为0

a=3
a<<=2 (<<:左移)
12 左移几位相当于乘以几个2
(>>:右移)

  • a<<=2
    相当于a=a<<2
  • 先乘除后加减
    位运算符(^ |)和算数运算符>比较运算符>赋值运算符>逻辑运算符(is,is not,not,or,and,in,not in)

1. 列表创建

(1). list()创建

a={20,10,…}
list() 创建
a=list()
a=list(range(10))

(2). range()创建整数列表

  • range(start,end,step)
  • start参数:可选,表示起始数字。默认是0
  • end参数:必选,表示结尾数字。
  • step参数:可选,表示步长,默认为1。

2. 列表元素增加与删除

  • 一般只会在列表尾部增加或者删除元素

(1).增加

  • append()方法 列表元素增加 推荐使用 原地址操作

a=[20,40]
a.append[80]
a=[20,40,80]

  • +运算符操作,+运算是产生一个新的列表

a=[20,40]
id(a)
得到a的地址
a=a+[50]
id(a)
得到新的a的地址

  • extend()方法

a=[20,40]
a.extend([50,60])
a=[20,40,50,60]

  • insert()插入元素,会影响处理速度,涉及大量元素时,尽量避免使用。类似的函数还有remove(),pop(),del()

a=[10,20,30]
a.insert(2,100). 在第2个位置插入100
a=[10,20,100,30]

  • 乘法扩展,效果与字符串复制类似

(2).删除

  • del
    表面是删除,其实是将要删除的元素的后一个元素依次向前拷贝,然后删除最后一个字符(插入可以反过来想)

a=[10,20,30]
del a[1] 删除第二个元素
a=[10,30]

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

a=[10,20,30,40,50]
b=a.pop()
b=50
c=a.pop[1]
c=20

  • remove()方法
    删除首次出现的指定元素,若不存在该元素抛出异常。

a=[10,20,30,10]
a.remove[20]
a=[10,30,10]
a.remove(100)
a中没有,所以报错

3. 列表元素访问和计数

  • 通过索引直接访问元素
  • index()获得指定元素在列表中首次出现索引 index(value,start,end)start,end均可不写

a=[10,20,30,40,50,20,30,20,30]
a.index(20)
1

a.index(20,3)
从索引位置3开始往后搜索的第一个20

a.index(30,5,7)
6 从索引位置5到7这个区间,第一次出现30元素的位置

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

a=[10,20,30,40,50,20,30,20,30]
a.count(20)
3

  • len()返回列表的长度
  • 成员资格的判断,一般使用in/not in 判断

4. 列表的遍历

for x in a

print(x,end=" ")

5. 列表排序

  • 修改原列表,不建立新的列表排序
    a.sort() #按照升序排列
    a.sort(reverse=Ture) #按照降序排列
    import radom
    random.shuffle(a) #随机打乱顺序
  • 建立新列表的排序
    通过内置函数sorted()进行排序,这个方法返回新列表,不对原列表做修改。
    a=sorted(a). #默认升序
    a=sort(a,reverse=Ture) #按照降序排列
  • reversed()返回迭代器

a=[20,10,30,40]
c=reversed(a)
print(list (c))
[40,30,10,20]
print(list (c))
空 #迭代器只能用一次

  • max,min,sum(数值型列表求和,非数值型列表报错)
    max[a],min[a],sum[a]

6. 二维列表输出

a=[
['赵一',26,30000,'北京'],
['赵二',27,30000,'杭州'],
['赵三',28,30000,'深圳'],
]
for m in range(3):
    for n in range(4):
        print(a[m][n],end='\t\t ')
        pass
    print( )
    pass

二、元组tuple

  • 元组属于不可变序列,元组没有增删改。

1. 元组创建

  • 通过()创建元组,小括号可以省略。如果括号中只有一个数字,要在数字后加一个逗号。
  • 通过tuple()创建元组。
    b=tuple()
    b=tuple(range(3))
    b=tuple(‘abc’)
    b=tuple([2,3,4])
  • 元组的元素访问和计数,同列表

2. zip

  • zip(列表1,列表2,…)将多个列表应对位置和元素组合成元组,并返回这个zip对象

a=[10,20]
b=[30.40]
c=[50,60]
d=zip(a,b,c)
list(d)
[(10,30,50),(20,40,60)]

3.生成器推导式创建元组

s=(x*2 for x in range(5))
print(s)
print('*********')
print(tuple(s))
print(tuple(s))

运行结果:
<generator object <genexpr> at 0x000001C36DB1D820>
*********
(0, 2, 4, 6, 8)
()

4.元组总结

  • 元组的核心特点是:不可变序列
  • 元组的访问和处理速度比列表快
  • 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值