一、序列:是一块用于存放多个值的连续内存空间,并且按一定顺序排列,可以通过索引取值
  • 索引:从左到右的索引从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='')

 

三、Python-列表的更多相关文章

  1. python列表和字符串的三种逆序遍历方式

    python列表和字符串的三种逆序遍历方式 列表的逆序遍历 a = [1,3,6,8,9] print("通过下标逆序遍历1:") for i in a[::-1]: print( ...

  2. Python列表、元组、字典和字符串的常用函数

    Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...

  3. python列表的常用操作方法

    主要介绍了Python中列表(List)的详解操作方法,包含创建.访问.更新.删除.其它操作等,需要的朋友可以参考下. 1.创建列表.只要把逗号分隔的不同的数据项使用方括号括起来即可 List = [ ...

  4. !!对python列表学习整理列表及数组详细介绍

    1.Python的数组分三种类型:(详细见 http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html) (1) list 普通的链表,初始化后可以通过特 ...

  5. python列表元组

    python列表元组 索引 切片 追加 删除 长度 循环 包含   定义一个列表 my_list = []     my_list = list()   my_list = ['Michael', ' ...

  6. Python列表的增删改查排嵌套特殊输出格式

    Python列表的增删改查排嵌套特殊输出格式 一.列表的样子: a = ['q' , 'w' , 'e ', 'r','t'] a为列表名,[ ]为列表内容,' '为列表内的元素,'q'为a[0] 二 ...

  7. python列表的一些常用方法以及函数

    学习到了一些关于python列表的新知识,自己整理了一下,方便大家参考: #!/usr/bin/env python # _*_ coding:utf-8 _*_ # File_type:列表的常用操 ...

  8. Python 列表(List)

    Python 列表(List) 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型 ...

  9. Python 列表(List)-文摘

    原文地址:http://www.runoob.com/python/python-lists.html Python 列表(List) 序列是Python中最基本的数据结构.序列中的每个元素都分配一个 ...

  10. Python 列表复制

    Python 列表复制 关于Python 列表的复制,有多种方法,常用的 有 赋值.切片.list.copy,copy.deepcopy等. 但是 实际用时 又有区别,不小心可能就用错了. 接下来 简 ...

随机推荐

  1. Array.sort()

    sort() : 是对数组的元素进行排序,并返回一个数组.默认排序方式是根据字符串的Unicode码表的码点. 由于取决于具体实现,所以无法保证它的时间和空间复杂度. arr.sort(compare ...

  2. leetcode 刷题(1)--- 两数之和

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...

  3. webbug3.0靶场第一关

    目标一,由于用的kli系统,所以没有去手动注入,用了sqlmap来注入检测 先用sqlmap -u "http://192.168.199.136/pentest/test/sqli/sql ...

  4. Euclid's Game

    Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submission(s ...

  5. SDL中 so库的使用

    用到的项目:Tocy-Android-SDLv2 JAVA层:只有一个 SDLActivity.java 路径\Android-SDLv2\src\org\libsdl\app 项目简单分析: 默认在 ...

  6. C51单片机_day_01(定时器和中断系统)

                c51单片机 51单片机是控制电路系统的开关,当然芯片就是51芯片,现在随着科技的发展,也是出了很多,功能更多,更全的芯片. 51是用c语言做为程序编程的语言 ——我对基本基础 ...

  7. python padas 学习

    import matplotlib from pandas import DataFrame import numpy as np import pandas as pd import MySQLdb ...

  8. Kali无法启动、无法安装

    好久未用Kali,换了个电脑后拷贝过去,发现打开登录界面无限循环,后删除下载新的vm镜像,发现无法开机,界面如下: 后经过各种尝试,发现为vmware版本太低的原因造成,升级vmware到版本14,可 ...

  9. C++ 状态机接口

    最近的状态极差,甚至代码也写不下去了.给自己手臂上的两刀没有任何的作用,看来早已经是麻痹了. 一直想弄一个勉强能用的状态机,用于在各种涉及到状态转换的时候用到,然而脑子并不是太清醒. 先放在这里一个接 ...

  10. Java技术开发程序员如果在2019年立足

    2019年的互联网环境相对以往来说要更复杂一些,互联网领域也正在经历从消费互联网向产业互联网转型的阵痛期.其实不少公司从2018年开始已经在陆续进行结构化调整,这些调整中的重要内容就是岗位调整,而岗位 ...