三、Python-列表

三、Python-列表
一、序列:是一块用于存放多个值的连续内存空间,并且按一定顺序排列,可以通过索引取值
  • 索引:从左到右的索引从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 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/dameon/p/10728173.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用基本ACL规则限制用户登录

要求:配置ACL 2005规则,限制vty 0 4界面只允许IP地址为192.168.1.8的用户和10.10.100.0/24网段的用户登录设备。 配置如下: system-view acl 2005 rule permit source 192.168.1.8 0 //允许IP地址为192.168.1.8的用户登录设备 rule permit s…

pandas 入门(2)

from pandas import Series, DataFrame, Index import numpy as np from numpy import nan as NAobj Series(range(3), index[a, b, c]) print(obj) index obj.index print(index) print(index[1:]) # index[1] d index对象时不可以被修改的 为了安全和共享index Index(n…

如何在Outlook 2013中管理附件

There comes a time, job-hunting, or sharing photos with older family members, where you may need to send stuff the old fashioned way – as an email attachment. If you email at work, it may be a part of your email repertoire. 有时需要找工作,与年长…

了解cron以及使用cron定时备份MySQL

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务 /sbin/service crond stop //关…

ef 并发控制

ef 并发控制 ef 并发控制 什么是并发?并发分悲观并发和乐观并发。悲观并发:比如有两个用户A,B,同时登录系统修改一个文档,如果A先进入修改,则系统会把该文档锁住,B就没办法打开了,只有等A修改完…

C#实现写入文本文件内容功能

private void write_txt(string str1, string str2, string str3)02{03System.DateTime currentTime System.DateTime.Now;04string strYMD currentTime.ToString("d");05string FILE_NAME "MyFileSend" strYMD ".txt";//每天按照日期建立一…

如何在Windows上设置BitLocker加密

BitLocker is a tool built into Windows that lets you encrypt an entire hard drive for enhanced security. Here’s how to set it up. BitLocker是Windows内置的工具,可用于加密整个硬盘驱动器以增强安全性。 设置方法如下。 When TrueCrypt controversially …

Java字节码方法表与属性表深度剖析

方法表: 在上一次咱们已经分析到了字段信息了,如下: 紧接着就是方法相关的信息了: 而它展开之后的结构为: 所以往后数2个字节,看一下方法的总数: 3个方法,可咱们只定义了两个方法呀&…

最大连续子数组和与JUnit测试

【题目】最大连续子数组和(最大子段和) 背景 问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]a[i1]…a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义…

笔记本电源适配器为什么总坏_为什么某些交流适配器和电源会发出啸叫声?

笔记本电源适配器为什么总坏Most of the time our AC adapters and power supplies tend to be quiet, but what does it mean when one makes a whining noise? Should you be concerned? Today’s SuperUser Q&A post has the answers to a worried reader’s question…

4412 字符类设备的设备号

一、静态申请字符类设备号 字符类设备函数在文件"include/linux/fs.h"中内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region()alloc_chrdev_region()register_chrdev()register_chrdev_region()是提前知道设备的主次设备…

monogdb操作system.*权限

mongodb roles system.roles集合删不掉 当你自定义了特权(角色): db.createRole({role: "dropSystemViewsAnyDatabase",privileges: [{actions: [ "dropCollection" ],resource: { db: "", collection: "system.roles" }}],roles: []}…

如何发现假库存照片(并将合适的人归于属性)

Spammers and other unscrupulous advertisers are always looking for new ways to get you click on their pages. One of the latest tactics is to steal popular and useful stock images—like the kind you sometimes see in news articles—and re-upload them elsewhe…

Mysql Hunter

一、简介自动化实施的过程中,我们通常都面临一个棘手的问题:数据的准备和恢复。即在成功执行一个自动化用例时,我们可能需要一定的数据前提,而为了使得整个前提不至于被其他的用例破坏,以至于我们有时不得不在自动化用…

C6748_UART(5) - UART寄存器

1、FIFO控制寄存器(FCR)RXFIFTL:接收FIFO中断触发(当FIFO中的数据量刚到达所要求(trigger level)的时候会产生中断);DMAMODE1:如果FIFO使能的话此位可以使能DMA模式。TXCLR:发送FIFO清除。RXCLR&#xff1a…

如何在Windows 10上限制Wi​​ndows Update的下载带宽

Windows 10’s Fall Creators Update gives you more control of Windows Update’s downloads and uploads. You can now set a download bandwidth limit, ensuring Windows Update won’t hog your Internet connection with its background downloads. Windows 10的Fall Cr…

Elasticsearch嵌套查询

2019独角兽企业重金招聘Python工程师标准>>> 一、背景 最近在做基于宴会厅档期的商户搜索推荐时,如果用传统平铺式的mapping结构,无法满足需求场景,于是用到了Elasticsearch支持的Nested(嵌套)查询。 二、普通对象与嵌套对象的索引…

写给深圳首期Python自动化开发周未班的信

你是否做了正确的决定? 深圳首期周未班的同学们大家好,我是Alex, 老男孩教育的联合创始人,Python项目的发起人,51CTO学院连续2届最受学员喜爱的讲师,中国最早一批使用Python的程序员,当然还有一堆头衔&…

网站跳出率的相关要点介绍

今天小峰seo博客和大家一起来探讨关于“网站跳出率的相关要点”,这里大体是分为三大要点:首先是进入的流量渠道,然后就是综合流量速度和内容的质量问题,细的来说就是我们的网站进来的用户是搜索什么关键词来的是通过百度还是搜狗或…

如何使用PowerShell提升开发效率(以Windows Embedded CE为例)

简介 本文讲述如何使用Powershell通过RAPI来控制Windows Embedded CE和Windows Mobile设备。 缘由 我入行的时候是做AS400 RPG和UNIX C开发的,所有开发环境都是字符界面,因此习惯了vigrepmake的开发模式。后来开始做Windows的开发,开始也不大…