python菜单函数_Python 自学笔记- 列表及其内置函数

0. 列表都可以存放一些什么东西?

我们可以说Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型。

mix = [1,"张三",3.14, [1,"李四", 3]]

#如果想得到列表中某个元素,只需要写出位置即可。

mix[0] = 1

mix[1] = "张三"

1. 向列表增加元素有哪些方法?append() -- 增加一个元素至列表末尾(如果是两个元素就会报错),这个元素可以是任何形式。

extend() -- 扩展一个元素到列表末尾(如果是两个元素就会报错),扩展的意思是其可以将2个列表并列。

insert(n,元素) -- 在数列的第n位添加元素

member = [1,2,3]

member.append([4,5])

# 将数列[4,5]做为一个元素,添加进member数列 member = [1,2,3,[4,5,]]

print(member)

member.extend([6,7])

#将数列[4,5]中的每个元素单做单独元素,添加进member数列member = [1,2,3,[4,5],7,8]

print(member)

member.insert(0,"张三")

# 在member第0位添加元素0 member = ["张三",1,2,3,[4,5],7,8]

print(member)

2. 分片应用

当需要获取列表中的一个子部分,就需要使用分片方法,语法为[start:stop:step]start: 开始的位置(默认其实位置)

stop: 结束的位置,不会将该位置的数字列入该新列表(默认末尾+1)

step: 间隔,即多少间隔,取一个值,(默认为1)Remark:

1. 步长不能为0,要不就走不动了

2. 步长可以是负数,改变方向(从尾部开始向左走)

list1 = [0,1,2,3,4,5,6,7,8,9]

list2 = list1[2:6]

# List2 选取list1中,从第二个位置开始,到第六个位置结束的子数列,list2 = [2,3,4,5]

list3 = list1[:]

# List3 选取list1中,从第0个位置开始,到第个9+1位置结束的子数列,list3 = [0,1,2,3,4,5,6,7,8,9]

List4 = list1[::2]

# List4 选取list1中,从第0个位置开始,到第个9+1位置结束,每隔2个位置取一个的子数列

#list4 = [0,2,4,6,8]

# 如果我设置start和stop会负数呢,List 5会是多少?

List5 = list1[-1:-5]

Python 的列表很聪明,支持负数索引,如图:正常索引是从左到右索引,负数索引是从右到左。 所以List5 = [9,8,7,6]

分片完成列表的拷贝 list2 = list1[:],那事实上可不可以直接写成 list2 = list1 更加简洁呢?

list1 = [1, 3, 2, 9, 7, 8]

list2 = list1[:]

print(list2)

# 得出的结果是[1, 3, 2, 9, 7, 8]

list3 = list1

print(list3)

# 得出的结果是[1, 3, 2, 9, 7, 8]

# 看上去貌似一样的,对吧?但事实上呢?我们利用列表的一个小伙伴做下修改

list1.sort()

# sort()是列表的内置排序函数(默认从小到大)

print(list1)

#得到的结果是[1, 2, 3, 7, 8, 9],list1已经从小到大排了个序

print(list2)

#得到的结果[1, 3, 2, 9, 7, 8]

print(list3)

#得到的结果是[1, 2, 3, 7, 8, 9]

#真正的汉奸、墙头草是list3,Ta跟着list1改变了,这是为什么呢?

Python的变量就像一个标签,就一个名字而已,贴哪是哪,指哪打哪,如下图。

这下大家应该明白了吧,在为一个固定的东西指定另一个名字的做法,只是向同一个东西增加一个新的标签而已。

猜猜下面print(new)是什么结果:

old = [1,2,3,4]

new = old

old= [7]

print(new) # 会打印出什么呢?

Remark:

1.列表的拷贝也可以用列表拷贝函数copy()

2. 如果要对列表进行排序,用sort(),默认从小到大,如果想得出从大到小的排序,可以加入reverse()(反转函数)

list1 = [1,2,5,4,3,0]

list2 = list1.copy()

print(list2)

#会得到[1,2,5,4,3,0]

list3 = list1.sort()

print(list3)

#会得到[0,1,2,3,4,5]

list4 =list3.reverse()

print(list4)

#会得到[5,4,3,2,1,0]

#简单的写法

list 5 = list.sort(reverse = true)

print(list5)

#会得到[5,4,3,2,1,0]

3. 删除列表的元素有哪些方法?remove(元素) -- 删除列表中的某一个元素。

del 列表[] -- 删除列表中某个位置元素或者某段位置元素,符号是[]非().

pop(n) -- 删除列表中的n位置的元素,不填默认最后一个元素,并赋值

list1 = [0,1,2,3,4,5]

list1.remove(1)

print(list1)

# 得到结果[0,2,3,4,5]

list2 = list1.remove(0)

print(list2) # 猜猜得到什么

print(list1) # 得到结果[2,3,4,5]

number = [0,12,24,36,48]

del number[1]

print(number)

# 得到结果[0,24,36,48]

del number[:2]

print(number)

# 得到结果[36,48]

del number[:] #清空表格,和number.clear()效果一样

print(number)

# 得到结果[]

member = ["张三","李四","王五","赵二"]

a = member.pop()

print(a) # 猜猜得到什么

print(member) # 得到结果["张三","李四","王五"]

4.其他请问 list1[0] 和 list1[0:1] 一样吗?

不一样,list1[0] 返回第0个元素的值,list1[0:1] 返回一个只含有第0个元素的列表。

List1 = [0,1,2,["today","tomorrow"],4]

list1[0] = 0 #返回第0个元素的值

list1[0:1] = [0] #返回一个只含有第0个元素的列表

#如何将"yesterday"插入到today 前面?

list1[3].insert(0,"yesterday")

print(list1)

#得到结果应该是 [0,1,2,["yesterday","today","tomorrow"],4]

# 如何将列表中元素替换

#将["yesterday","today","tomorrow"] 替换成3

list1[3] = 3

print(list1)

#结果应该是[0,1,2,3,4]

#如果将2,3,4换成3,4,5

list1[2:] = [3,4,5]

print(list1)

#结果应该是[0,1,3,4,5]如果你每次想从列表的末尾取出一个元素,并将这个元素插入到列表的最前边,你会怎么做?

>>> list1.insert(0, list1.pop())列表中内置函数(没介绍的)count(元素) -- 计算元素在列表中有多少个

index(元素,start,stop) -- 查找该元素在start位置到stop位置的第几个(start 和 stop不填默认为全部元素),如果含有多个元素,只返回第一个值。

list1 = [0,1,2]

list2 = [3,4]

list3 = list1 + list2

print(list3) # 结果为 [0,1,2,3,4]

list4 = list2 * 4

print(list4) # 结果为 [3,4,3,4,3,4,3,4]

print(list4.count(3)) # 结果为 4

print(list4.index(4)) # 结果为 1列表列表推导式或列表解析

列表推导式(List comprehensions)也叫列表解析,灵感取自函数式编程语言 Haskell。Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:

number1 = [ i*i for i in range(10) ]

print(number1) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

#其实上面上面这个语法相当于

list1 = []

for x in range(10):

list1.append(x**2)

print(list1)

问题:请先在 IDLE 中获得下边列表的结果,并按照上方例子把列表推导式还原出来。

>>> list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]

答案:

list1 = []

for x in range(10)

for y in range(10)

if (x%2==0) and (y%2 !=0):

list1.append((x,y))

print(list1)

问题:请使用列表推导式补充被涂掉的部分

答案:list3 = [name+":"+slogan[2:] for slogan in list1 for name in list2 if slogan][0]=name[0]]

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

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

相关文章

按120分计算成绩 mysql_Mysql实用教程试卷B.doc

.上 装 订 线系名: 班级: 姓名: 学号: 考试日期:下 住 装 订 线河南教育学院2014—2015学年第二学期期末考试软件学院2014级计算机信息管理专业普通专科班《MySQL实用教程》试卷B卷题号一二三四总分分数得分评卷人一、…

java double==Double_java之double类型数值的比较

先看demo:public classL26 {/***paramargs*/public static voidmain(String[] args) {//TODO Auto-generated method stub//double a 300000;double x 300000.00000000003;//double比较,小数点后有效位double y 300000.000000000003;//主要注意的是double类型直接/&…

莫烦python博客_《莫烦Python》笔记 -- numpy部分

个人感觉,在numpy里,从说法上,数组与矩阵可以互换1.1 numpy & pandas有什么用?1.2 numpy & pandas的安装安装Anaconda2.1 numpy属性import numpy as np# 将一个列表转化为矩阵array np.array([[1,2,3],[2,3,4]])# 查看矩…

java 内存情况_java查看jvm内存使用情况

java查看jvm内存使用情况(2012-03-22 15:50:54)标签:jvm内存虚拟机分配itjava.lang.Runtime类提供了查看当前JVM内存的使用情况。每个java实例(即虚拟机实例)只有一个Runtime的实例,通过Runtime.getRuntime()可以得到当前虚拟机中的Runtime实例对象。Run…

java 密码生成器_Java课程设计-随机密码生成器

1.团队课程设计博客链接2.个人负责模板设计程序运行界面,数据的输入,判断数据输入类型的错误,判断密码类型是否选择。3.自己的代码提交记录截图4自己负责模块或任务详细说明(一)总体设计1.系统主要功能(1)输入生成密码长度;(2)判断…

java 多个 panel_java – 在JFrame中组织多个JPanel的好方法是...

我想要做的是在框架内组织五个单独的JPanel.输出应该是这样的:顶部会有一个面板.顶部面板正下方的两个面板垂直分割空间,然后另外两个面板水平分割剩余空间.我无法弄清楚如何组织如上所述的面板,我认为这是因为我只是不知道正确的语法.所以任何帮助或建议都非常感谢…

cad二次开发 java_应用Java语言进行AutoCAD2000二次开发.PDF

应用Java语言进行AutoCAD2000二次开发实用第一 智慧密集刘良华袁英战朱东海摘 要介绍了应用Java语言进行AutoCAD二次开发的方法和思路。关键字 二次开发,AutoCAD定制,COM,Java编程Mic Mod- AcadApp.roBoft的组件对象模型(COM&…

中南民族大学java考试_中南民族大学Java语言程序设计期末试卷A卷

科目序号:6002 A卷《Java语言程序设计》期末试卷(试卷总分:100分,考试时间:120分钟,答案写在答卷纸上)一.判断题(每题1分,共10分)1.无论Java源程序包含几个类的定义,若该源程序文件以…

java集合的遍历_Java集合之遍历

在Java开发中,集合,可以说使我们必然要使用到的一个框架。对集合的遍历也是我么经常要进行的操作,而遍历操作又有多种,下面就对集合遍历进行以下总结。一、List、Set的遍历List与Set都继承了Collection接口,从某种程度…

pyecharts本地文件_python数据可视化-pyecharts插件使用文档

pyecharts是百度开源的可视化插件,可以将设计的可视化图表以html格式保存,配合jupyter可以一键生成动态的html数据分析报告。pyecharts和matplotlib的区别在于,pyecharts有更加强大交互的可视化和嵌入html的功能,pyecharts缺点在于…

java 泛型 子类_Java泛型:要求泛型成为某种类型的子类

我有一个抽象的泛型类:public abstract class AbstractMessageHandler{public abstract List getTypesOfMessages();public abstract void handleMessage(String message, CometClient client);public T setResponseValues(AbstractMessage request, T response ){r…

java的创建管理员对象_java--更改管理员密码,请列位帮忙看看有没有更好的实现方式...

需求说明:输入旧的用户名和密码,如果正确,方有权限更新,从键盘获取新密码,进行更新实现思路:1、创建管理员类的对象;2、利用while实现循环执行import java.util.Scanner;public class ChangePas…

gdal获取像元的灰度值java_GDAL利用地理坐标读取图像像元值

最近的一个项目需要在电子海图中下载已知水深点,导出点的地理坐标(经纬度)。然后在arcgis中打开这些地理坐标输出为shp,利用GDAL读取不同波段的点对应的像元值,从而构建水深和像元值的对应关系。其实想要根据经纬度得到像元值有两种方法。1.通…

java封装概念_Java面向对象----封装概念

封装信息隐藏,隐藏对象的细节访问修饰符publicprivateprotected默认属性封装的实现方法封装的目的(隐藏方法实现细节)package com.tanlei.newer;public class TeacherDemo {public static void main(String[] args) {teacher tnew teacher();//t.name("zhangs");t.se…

java 异常何时抛出_何时适合抛出异常?

例外点是沟通 exceptional 情况 .从这个意义上讲:如果你的例子中所有条件都是假的绝对意外,并且没有有效的返回值来表明这种情况,那么抛出RuntimeException是合理的做法;但我可能会将消息更改为:throw new RuntimeException("…

java找到int需要char_Java2课后择题.doc

Java2课后择题Java2实用教程(第4版)课后选择题整理(以下内容可能会出现少量错别字,望见谅)——by[小坏蛋~]第一章选择题(1)下列哪个是JDK提供的编译器?A. java.exe B.javac.exeC.javap.exe D. javaw.exe(2)下列哪个是Java应用程序主类中正确的main方法?A. public …

kibana java script_Elasticsearch:创建 Runtime field 并在 Kibana 中使用它 - 7.11 发布 - TGCode...

在之前的文章 “Elasticsearch:使用 Runtime fields 对索引字段进行阴影处理以修复错误 – 7.11 发布”,我展示了如何使用 runtime field 来 shadow 一个已有的在 mapping 中的字段,比如 duration。在今天的练习中,我将展示如何创…

java 写 gz_java简写名词解释 - osc_gzyujipq的个人空间 - OSCHINA - 中文开源技术交流社区...

RPC(Remote Procedure Call)—远程过程调用实时编译器(Just In Time Compiler,JIT)XML 指可扩展标记语言(EXtensible Markup Language)WSDL 指网络服务描述语言 (Web Services Description Language)UDDI,英文为 "Universal Description, Discovery…

java 提取电话号码_java – 如何使用正则表达式提取字符串的电话号码?

如果我有一个包含以下内容的字符串:这是1测试123-456-7890我需要提取1234567890作为电话号码.我不想提取测试前的数字1.如何在java中使用正则表达式?我知道一种方法,但我不确定它是否是最好的解决方案:String inputString "This is 1 t…

asp连接mysql oledb_provider=microsoft.jet.oledb……数据库连接方法的疑惑?

很多朋友对ASP连接ACCESS数据库的方法不太熟悉.下面把几种方法列举出来,需要用的时候或者自己的程序出现问题的时候与这些源程序对照一下,说不定会有所启发.1.set dbconnectionServer.CREATEOBJECT("ADODB.CONNECTION")DBPath Server.MapPath("customer.mdb&qu…