拜师教育第一阶段day3_python基础

第三章  列表

1.对a进行乘2最快操作:a<<1,对a进行除以2最快操作:a>>1。将一个十进制数码转换成相应的二进制代码bin()。运算符优先级简单规则:乘除优先于加减;运算与算术运算>比较运算>赋值运算>逻辑运算。

2.序列(一种数据存储方式):常见的序列结构为字符串、列表、元组、字典、集合等。其中列表可变序列,可以随时增加或删减元素,因此内容与大小皆可变。字符串和元组为不可变序列。

3.列表中元素类型可以任意,如创建元组a=[10,'soda','%^',True,2//4,'我爱生活!']。创建空表a=[]等价于a=list(),用range(包头不包尾)建立表格list(range(5)),list(range(-9,9,1))推导式生成列表(将200内所有能被9整除的偶数组成一维列表:a=list([x*2 for x in range(101) if (x*2)%9==0])。

4.列表部分元素的删除与插入实质上是数据拷贝的过程,在编程中应尽量避免,否则会使效率低下,一般只在尾部添加或删减新的元素。a.append()在原表尾部添加元素(速度最快),列表也可通过‘+’运算符拼合添加新元素(生成新列表(判断方法:通过id()查看地址)涉及大量拷贝过程,效率低),通过extend()将目标列表添加至尾部(操作原列表),a=[10,20,30]    a.insert(2,100)可在任意位置插入元素,导致其后元素全部拷贝后移,效率下降。乘法扩展。

5.列表元素的删除:通过del a[]删除列表指定位置元素;pop(num)(弹出该值使用,删除原列表该元素,未指定位置默认弹出最后一个元素);a.remove(元素)删除首次出现的指定元素

6.列表的其他操作:通过编码a[num]直接访问,搜索位于编码5-7之间第一次出现30的位置:a=[10,20,30,40,50,20,30,20,30]    a.index(30,5,7);count(元素)得到其在列表中出现的次数;len()返回列表元素数目;最简便的成员资格判断in/not in;列表的切片(子元素构成列表的截取)[10,20,30,40,50,60,70][起始位置码:终止位置码:步长];列表a的遍历a=list(range(-9,9,1)) for x in a  print(a);列表的排序.sort(修改原表):a.sort()升序排序、a.sort(reverse=True)降序排序import random  random.shuffle(a)打乱顺序;新建列表排序:sorted(a)升序、sorted(a,reverse=True)降序。最大值max()最小值min()求和sum()。

7.reversed()返回迭代器:内置函数 reversed()不对原列表做任何修改,只是返回一个逆序(颠倒顺序,不是降序)排列的迭代器对象,只能使用一次list(c)。

8.作业:嵌套循环打印二维列表所有的数据(多维列表(列表内嵌套列表))

a=[
    ['姓 名','年龄','薪资','城市'],
    ['高小一',18,30000,'北京'],
    ['高小二',19,20000,'上海'],
    ['高小五',20,10000,'深圳'],
                               ]
for x in range(4):
    for y in range(4):
        print(a[x][y],end='    ')
    print('\n')

9.元组(不可变,无法修改元素,访问速度快于列表,由于不变性可以作为字典的键使用):创建a=()等价于a=tuple(){注意:如果元组只有一个元素,则必须后面加逗号。a=(2,)};元组的访问a[1] 切片a[:3:1]。元组的排序sorted((70,50,90,40))。将多个列表压缩合成元组tuple(zip([10,20],[40,50]))(压缩时以最少元素的那个元组为基准)。递推式生成器生成元组s = (x*2 for x in range(5))  tuple(s)只能生成一次(列表不存在这个问题),随着指针的下移元素被遍历,至最后一个元素取出后指针处无元素。

10.如何一个一个将递推式生成器生成的元组元素取出来?

s=(x*2 for x in range(25) if x%3==0)
s.__next__()
s.__next__()

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值