python列表操作程序_Python入门篇(三)之列表

1、列表定义

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"] #列表存储,类似数组

2、列表的操作

(1)切片

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"] #列表存储,类似数组

print(names[1],names[3]) #取值,1、3代表下标,从左到右的位置

执行结果:

Guyun Xuliangchen

print(names[1:3]) #切片,顾头不顾尾取[1]、[2]的值

print(names[0:3]) #切片

print(names[:3]) #等同于0:3,从下标0到3

print(names[-1]) #切片,取倒数第一个值

print(names[-2]) #取倒数第二个值

print(names[-2:]) #取最后两个值

(2)增加--append:

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"]

names.append("LeiHaidong") #追加到最后

print(names)

执行结果:

['ZhangYang', 'Guyun', 'Xiangpeng', 'Xuliangchen', 'LeiHaidong']

(3)修改--insert:

names.insert(1,"Chenronghua") #数据插入,插在哪个位置前面就写这个元素的下标,如插在Guyun前面

names.insert(3,"Xinzhiyu") #插在Guyun后面

print(names)

执行结果:

['ZhangYang', 'Chenronghua', 'Guyun', 'Xinzhiyu', 'Xiangpeng', 'Xuliangchen', 'LeiHaidong']

(4)查询--index:

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"]

print(names)

print(names.index("Xiangpeng")) #查出Xiangpeng的位置

print(names[names.index("Xiangpeng")]) #获取下标内容

执行结果:

['ZhangYang', 'Guyun', 'Xiangpeng', 'Xuliangchen']

2

Xiangpeng

(5)统计--count:

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"]

print("count-->",names.count("ZhangYang"))

执行结果:

count--> 1

(6)反转--reverse:

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"]

names.reverse()

print(names)

执行结果:

['ZhangYang', 'Guyun', 'Xiangpeng', 'Xuliangchen']

reverse--> ['Xuliangchen', 'Xiangpeng', 'Guyun', 'ZhangYang']

(7)扩展--extend:

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"]

names2 = [1,2,3,4]

print(names)

names.extend(names2)

print("extend-->",names)

执行结果:

['ZhangYang', 'Guyun', 'Xiangpeng', 'Xuliangchen']

extend--> ['ZhangYang', 'Guyun', 'Xiangpeng', 'Xuliangchen', 1, 2, 3, 4]

(8)排序--sort:

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"]

names.sort()

print(names)

执行结果:

['Guyun', 'Xiangpeng', 'Xuliangchen', 'ZhangYang']

(9)清除--clear:

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"]

names.clear()

print(names)

执行结果:

[]

(10)复制--copy:

names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"]

names2 = names.copy()

print(names)

print(names2)

names[1] = "古云" #更改Guyun,可以看到names2中并没有修改

print("names-->",names)

print("names2-->",names2)

执行结果:

['ZhangYang', 'Guyun', 'Xiangpeng', 'Xuliangchen']

['ZhangYang', 'Guyun', 'Xiangpeng', 'Xuliangchen']

names--> ['ZhangYang', '古云', 'Xiangpeng', 'Xuliangchen']

names2--> ['ZhangYang', 'Guyun', 'Xiangpeng', 'Xuliangchen']

(11)列表嵌套复制--copy.deepcopy:

names = ["ZhangYang","Guyun",["alex","jack"],"Xiangpeng","Xuliangchen"]

names2 = names.copy()

print(names)

print(names2)

names[1] = "古云"

names[2][0] = "ALEX" #更改列表中的alex为ALEX,可以看到names2中也相应更改

print("names-->",names)

print("names2-->",names2)

执行结果:

['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']

['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']

names--> ['ZhangYang', '古云', ['ALEX', 'jack'], 'Xiangpeng', 'Xuliangchen']

names2--> ['ZhangYang', 'Guyun', ['ALEX', 'jack'], 'Xiangpeng', 'Xuliangchen']

★★★★注意:这里的的copy只会拷贝第一层,列表中包含列表,其中列表是指向存放列表的内存地址,所以在更改列表中的元素时,拷贝的部分也会相应地更改。

为了实现深入拷贝,可以导入copy模块:

import copy

names2 = copy.deepcopy(names)

print(names)

print(names2)

names[1] = "古云"

names[2][0] = "ALEX"

print("names-->",names)

print("names2-->",names2)

执行结果:

['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']

['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']

names--> ['ZhangYang', '古云', ['ALEX', 'jack'], 'Xiangpeng', 'Xuliangchen']

names2--> ['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']

可以看到拷贝是完全克隆过来的,但是生产过程中一般不会使用,拷贝多一份数据,等于多占据了一份内存空间。

(12)for循环列表:

names = ["ZhangYang","Guyun",["alex","jack"],"Xiangpeng","Xuliangchen"]

for i in names:

print(i)

执行结果:

ZhangYang

Guyun

['alex', 'jack']

Xiangpeng

Xuliangchen

(13)步长切片:

names = ["ZhangYang","Guyun",["alex","jack"],"Xiangpeng","Xuliangchen"]

print(names[0:-1:2]) #打印第一个到最后一个,步长为2

执行结果:

['ZhangYang', ['alex', 'jack']]

3、程序练习

程序:购物车程序

需求:

启动程序后,让用户输入工资,然后打印商品列表

允许用户根据商品编号购买商品

用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

可随时退出,退出时,打印已购买商品和余额

#!/usr/bin/python

# _*_ coding:utf-8 _*_

# Aothr: Kim

goods_list = [

['Iphone',5800],

['Mac pro',9800],

['Bike',800],

['Watch',10600],

['Coffee',31],

['Alex Python',120]

]

shopping_list = [] #此列表为空当做购物车使用

salary = input("Please input your salary:")

if salary.isdigit():

salary = int(salary)

while True:

for index,item in enumerate(goods_list): #enumerate可以取出列表的下标和内容

print(index,item)

user_choice = input("请选择你需要的商品编号:")

if user_choice.isdigit():

user_choice = int(user_choice)

if user_choice < len(goods_list) and user_choice >= 0: #len可以取出列表的长度

g_item = goods_list[user_choice]

if g_item[1] <= salary:

shopping_list.append(g_item)

salary -= g_item[1]

print("已成功添加商品%s到购物车,当前余额为\033[31;1m%s\033[0m" % (g_item, salary))

else:

print("您的余额为%s,无法购买此商品,请充值!"%salary)

else:

print("您的选择的商品编号%s有误,请重新选择:"%user_choice)

elif user_choice == 'q':

print('------goods list------')

for p in shopping_list:

print(p)

print("您当前余额为%s"%salary)

exit()

else:

print("您的输入有误,请输入正确的商品编号!")

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

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

相关文章

python编程制作_一种Python编程创作平台的制作方法

本发明涉及在线浏览器技术领域&#xff0c;特别涉及一种Python编程创作平台。背景技术&#xff1a;目前项目整体使用javascripthtmlcss实现&#xff0c;用户界面编写上使用react框架。具体实现上是将python语法转换为js语法&#xff0c;使其可以在浏览器中运行&#xff0c;目前…

tomcat7.0支持什么版本的jdk_恭喜你喜提JDK,那你知道JDK是什么吗?先来看看吧

点击蓝字关注一行JDK 大家都知道电脑的操作系统是由汇编和C语言写出&#xff0c;因此操作系统无法直接识别其他语言。这时我们就需要为我们写的Java程序配备一名翻译官 ----- 编译环境&#xff0c;将Java程序翻译成电脑可以识别的程序&#xff0c;C或者汇编。 那么对于这个…

我的python 入门 安装 -- hello world

我的python 安装–>“hello world” 最近老听到关于python的声音&#xff0c;而且越来越强烈。就好奇下载了下&#xff0c;在win10 的应用商店下载的 够傻瓜了吧 环境变量也不用配置 直接上手 hello world了 cmd 窗口 输入 python -v 正常显示 显示版本号 不能正常显示…

python if try except_python try except

python中try/except/else/finally语句的完整格式如下所示&#xff1a;try:Normal execution blockexcept A:Exception A handleexcept B:Exception B handleexcept:Other exception handleelse:if no exception,get herefinally:print("finally")说明&#xff1a;正常…

多台Linux服务器之间互相免密登陆

多台Linux服务器之间互相免密登陆 例如我们有三台Linux 服务器&#xff1a; 192.168.0.1 192.168.0.2 192.168.0.3 1.1 首先配置服务器 1 面密令登录2 和 3 1.2 登录服务器1&#xff0c;然后输入命令&#xff1a;ssh-keygen -t rsa &#xff0c;一路按 回车&#xff0c; …

python多进程内存共享_Python—并发编程04多进程内存共享,python,间,的

Manaegr实现数据共享导入 &#xff1a;from multiprocessing import Manager实例化&#xff1a;m Manager()num m.dict( {键 : 值} )num m.list( [1, 2, 3] )程序示例:from multiprocessing import Manager,Processdef fun(num):num[0] 0print(子进程中num:, num)if __name…

记录spring、springboot集成apollo配置中心

一, spring集成apollo&#xff0c;前提是apollo配置中心服务端已经在运行中 上面是我在阿里云服务搭建的apollo配置中心服务端&#xff0c;登录后的样子。没有搭建服务端的小伙伴&#xff0c;请先搭建好apollo的服务端 然后点击‘创建项目’&#xff0c;新建测试用的项目 填…

python中不同类型的数据不能相互运算_Python第三课——数据类型与运算(2)

hello大家好&#xff0c;我是你们的小蒟蒻鸭&#xff0c;终于终于有时间写博客了(虽然刚开始期末复习)&#xff0c;真的非常非常抱歉&#xff0c;拖更太厉害了。反正还有一个月不到小蒟蒻就要放暑假了&#xff01;&#xff01;&#xff01;(激动.jpg)&#xff0c;蒟蒻保证会一周…

Java多线程--死锁例子

package qzy.thread.deadLock;/*** 描述模拟死锁** 形成死锁的四个必要条件是什么** 1.互斥条件&#xff1a;线程(进程)对于所分配到的资源具有排它性&#xff0c;即一个资源只能被一个线程(进程)占用&#xff0c;直到被该线程(进程)释放* 2.请求与保持条件&#xff1a;一个线程…

python重写和装饰器_python装饰器

python装饰器的本质&#xff0c;就是闭包&#xff01;我们一般谈Python的闭包&#xff0c;都是指普通的入参&#xff0c;而谈装饰器的时候&#xff0c;入参一定有函数&#xff01;闭包和装饰器&#xff0c;返回的都是函数。函数是代码的最小封装单位&#xff0c;装饰器作用于函…

Java基础复习题--类加载顺序

在某个视频看到一个关于Java类加载顺序的面试题&#xff0c;记录一下&#xff1a; talk is sheep&#xff0c; show code&#xff01;&#xff08;请忽略语法&#xff09; public class Father {private int i test();private static int j method();static {System.out.prin…

基本农田卫星地图查询_发现谷歌地图替代网站,卫星地图街景功能都能用

众所周知&#xff0c;由于谷歌地图&#xff08;Google Maps&#xff09;在国内不能访问&#xff0c;很多人就没有办法通过谷歌地图来获得服务。谷歌地图是目前全球最受欢迎的世界地图网站&#xff0c;在2005年以前&#xff0c;谷歌地图就收录了美国、英国、加拿大三个国家的地图…

记录 Linux crontab 的使用

记录一次简单的Linux定时任务----》每周定时备份数据库结构及数据 环境&#xff1a;阿里云服务器 vim 命令&#xff1a;输入i/a 进入输入模式&#xff0c;输入完成后&#xff0c;esc键&#xff0c;退出输入模式&#xff0c;确定无误后&#xff0c;输入“:wq”,保存退出 Linux 环…

python random函数_Python随机函数random使用详解

在python中用于生成随机数的模块是random,在使用前需要import, 下面看下它的用法。1、random.randomrandom.random()用于生成一个0到1的随机符点数: 0 < n < 1.0注意&#xff1a; 以下代码在Python3.5下测试通过&#xff0c; python2版本可稍加修改描述random() 方法返回…

Graphicsmagick linux 中文水印乱码-new

文章目录Graphicsmagick linux 中文水印l乱码&#xff08;中文显示成正方形&#xff09;本人在Windows上安装Graphicsmagick 并使用Graphicsmagick 添加中文水印成功&#xff0c;但是在Linux下一直乱码&#xff0c;现将解决办法分享给有需要的朋友。 1.Linux下默认安装Graphic…

python数据结构递归树_python数据结构(对称二叉树递归和迭代)

1、题目描述给定一个二叉树&#xff0c;检查它是否是镜像对称的。2、代码详解2.1 递归写法# Definition for a binary tree node.class TreeNode(object):def __init__(self, x):self.val xself.left Noneself.right Noneclass Solution(object):# 递归写法def isSymmetric(…

python跨文件复制sheet_Python办公自动化-工作表复制(可跨文件)

我们平时在处理Excel文档&#xff0c;会涉及到工作表的复制。一般我们会遇到这两种工作表复制需求&#xff1a;单个Excel文档内将工作表复制多分多个Excel文档之间&#xff0c;相互复制工作表将多Excel文档中的工作表复制到同一个Excel文档中针对与上述需求&#xff0c;我们可以…

python 神经网络原理_神经网络理论基础及Python实现

一、多层前向神经网络多层前向神经网络由三部分组成&#xff1a;输出层、隐藏层、输出层&#xff0c;每层由单元组成;输入层由训练集的实例特征向量传入&#xff0c;经过连接结点的权重传入下一层&#xff0c;前一层的输出是下一层的输入;隐藏层的个数是任意的&#xff0c;输入…

postman 使用_Postman使用方法

一 Postman背景介绍用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的&#xff0c;用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基…

bool python 运算_python基础知识和pycharm安装

昨天大家对我(Python)有了一定的了解&#xff0c;那么今天带大家更加系统化的认识一下我&#xff0c;已经了解我的工作方式先说一下如果让我去做一件事情得需要那些“配置”&#xff0c;其实很简单的&#xff0c;不要把我想的太复杂&#xff0c;毕竟还是个单纯的孩子。让我做事…