dameon

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
一、序列:是一块用于存放多个值的连续内存空间,并且按一定顺序排列,可以通过索引取值
  • 索引:从左到右的索引从0开始依次增加的正整数;从右到左的索引为-1开始的复数
  • 切片(分片):一中获取序列中的元素的方法;
sname[start:end:step]--sname:序列名;start:起始值;end:结束值(不包括);step:步长
  • 序列相加:两个序列可以相加(只能同类型序列:列表+列表,元组+元组,字符串+字符串),被加的序列排在原来的序列后面
  • 乘法:序列的乘法实际上就是把一个序列中的元素复制几次
  • 检查某个元素是否是序列的成员:print("姚明" (not) in nba)---判断姚明(不)在nba列表中
len也能计算字符串的长度
  • 计算序列的长度:print("列表的长度为:"len(nba))---计算nba序列的长度
  • 最大值:print(max(number))---返回序列中的最大值(只能用在序列中为数字型时)
  • 最小值:prin(min(number))---返回序列中的最小值(只能用在序列中为数字型时)
list():把序列转换为列表(数字和字符串都能转换)       str():序列转换为字符串
sum():计算序列中元素和                 sorted():给序列中元素排序
reversed():反转序列中元素                  enumerate():把序列组合为一个索引序列
二、列表:列表中可以放:整数,实数,布尔值,字符串,序列,对象
  • 列表的创建和删除:一般不把不通类型的数据放在同一个列表中(提高可读性)
    • 赋值运算符直接创建:listname = [元素1,元素2,…]---用英文状态的“,”隔开,元素数量无限制
    • 创建空列表:a = []---创建一个名为a的空列表
    • 创建数字列表:list(range(2,21,2))---2—21之间的偶数(数据全部都为数字)
    • del listname------删除列表(很少用)
  • 访问列表元素:获取列表中的内容
    • print() 索引 切片
  • 遍历列表:把列表中的元素全部预览一遍
    • for循环实现:只能输出元素与的值
      • for iten in listname: ---item用于保存获取到的元素,listname为列表名
    • for循环和enumerate:即显示索引又显示元素
      • for index,item in enumerate(listname): ---index用于保存索引,item用户保存获元素的值
  • 添加元素:+运算符添加(效率低)
    • append:在元素列表末尾添加元素
      • listname.append(obj) ---listname为被添加的列表名;obj为要添加的对象
    • inert:用于在列表中间插入一个对象
      • listname.inert(num,obj) ---num为要插入的位置的索引号;obj为要插入的对象
    • extend:用于把一个列表添加到另一个列表的末尾
      • listname.extend(seq) ---listname为原列表名,seq为被添加的列表
  • 修改元素:只需要通过索引获取该元素,然后再为其重新赋值
    • verser[2]="…" ---verser为列表名,2为要修改的元素的索引号
  • 删除列表元素:
    • 根据索引号删除:必须知道要删除的元素的索引号(索引号可为正数或负数)
      • del verser[-1] ---删除verser列表中索引为-1的元素
    • 根据元素值来删除:不确定其位置的元素(根据元素值来删除,最好先判断该元素是否在列表)
      • if verser.count(value)>0 ---判断value元素是否在列表verser中
        • verser.remove(value) ---删除verser列表中的value值
  • 对列表进行统计计算:
    • count:获取指定元素在列表中出现的次数(精确匹配,不能只是元素的一部分)
      • listname.count(obj) ---统计元素obj在列表listname中出现的次数
    • index:获取指定元素在列表中首次出现的位置(索引)(被统计的元素只能精确匹配)
      • listname.index(obj) ---统计obj在列表中首次出现的位置
    • sum:统计数字列表的元素和
      • sum(iterable,start) ---iterable为要计算的列表名,start为系统统计结果要加的值(默认为0)
  • 对列表进行排序:
    • sort:对元素排序,排序后原列表中的元素顺序将发生改变
      • listname.sort(key=None,reverse=False) ---key表示指定一个从每个元素中提取的一个比较键(key=str.lower表示在排序时不区分大小写);reverse为True表示降序,False为升序,默认为升
    • sorted:排序后,源列表的元素顺序不变
      • sorted(itemble,key=None,reverse=False) ---itemble表示要排序的列表名称
三、列表推导式:可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表
生成指定范围的数字列表:list = [Expression for var range]    
list = [i*i for i in range(2,11,2)] ---生成0-10的偶数的平方
list:生成列表的名称;         expression:表达式,计算型列表的元素
var:循环变量             range:采用range()函数生成range对象
根据列表生成指定需求的列表:newlist = [expression for var in list]
price = [1200,5300,2988,6200,1998,8888]
sale = [int(x*0.5) for x in price]
print('原价格:',price)
print('五折价格:',sale)
newlist:表示新生成的列表名; list:用于生成新列表的源列表名
从列表中选择符合条件的元素组成型列表:newlist = [expression for var in list if condition]
    price = [1200,5330,2988,6200,1998,8888]
sele = [z for z in price if z >5000]
print('原列表:',price)
print("高于5000的:",sale)
condition:条件表达式,用于指定筛选的条件
四、二维列表的使用:二维列表就是包含列表的列表,一个列表的每个元素都是一个列表
直接定义二维列表:listname=[元素1,元素2…],[元素11,元素12…],[元素21,元素22…],…]
使用嵌套的for循环创建:      
room = []
for i in range(1,5): #楼层
  room.append([]) #添加一个空列表
for j in range(1,8): #每一层的房间数
  room[i-1].append(i*1000+100+j)
print(room)
使用列表推导式创建:(能使用推导式尽量使用推导式)
          eg:room=[[i*1000+100+j for j in range(1,8)] for i in range(1,5)]
      print(room)
eg:   
str1 = "千山鸟飞绝"
str2 = "万径人踪灭"
str3 = "孤舟蓑笠翁"
str4 = "独钓寒江雪"
list1 = [list(str1),list(str2),list(str3),list(str4)]
print("--横版输出--")
print()
for i in range(4): #循环的行数
  for j in range(5): #循环每一行的字
    if j == 4: #一行中的最后的一个字
      print(list1[i][j]) #换行输出
    else:
      print(list1[i][j],end="") #不换行输出
print()
print()
print("--竖版--")
print()
list1.reverse() #排序(逆序)
for i in range(5): #循环每一行中的每一个
  for j in range(4): #每一行
    if j == 3:
      print(list1[j][i]) #换行输出
    else:
      print(list1[j][i],end='')
 
posted on 2019-04-18 10:38  dameon  阅读(278)  评论(0编辑  收藏  举报