python第二天 列表、元组
今天学习了列表、元组相关的知识:与C中的数组列表相似,元组为只读列表:
以及切片相关操作:
#!usr/bin/env python
#-*-coding:utf-8-*-
# Author calmyan
#元组,列表
names=['zy','gy','xp',['2r','t3','t4'],'lh','xc']
print(names)
print(names[0],names[2])
print(names[1:3])#切片左往右
print(names[2])#切片
print(names[-1])#切片从后开始取
print(names[-2:])#切片左往右最后的省略
print(names)
names.append('lh')#追加
print('追加后;',names)
names.insert(3,'crh')#插入位置
print('插入位置后:',names)
names[2]='ggy'#修改
print('修改后:',names)
del names[2]
print('删除后:',names)
print('统计个数:',names.count('lh'))#统计内空个数
names_id=names.index('gy')#内容所在的下标
names_user=names[names.index('gy')]#下标所对应的内容
print(names_user)
print(names_id)
#names.clear()#清空列表
print('原序列打印:',names)
names.reverse()#反转列表
print('反转序列打印:',names)
#names.sort()#排号序默认为ACSII码表
print('排号后打印:',names) names2=[1,2,3,4,5,6]
names.extend(names2)#合并names2列表
print('合并后打印:',names)
print('第二列表:',names2)
import copy
names3=copy.deepcopy(names)#完全COPY
#names3=names.copy()#复制names列表 赋于names3 浅复制 子列表为指针地址
print('列表3',names3)
print('列表1',names)
names3[0]='修改1'
names3[3][1]='修改二层'
print('列表3',names3)
print('列表1',names)
for i in names:
print (i)
for i in range(names.__len__()):#__len__列表元素个数(长度)
if names[i]=='crh':
print(names[i])
print(i)
# for i in range(1,names.__len__(),2):
# print(i)
print(names[0:-1:2])#开始位 结束位 步长()
print(names[::2])#0和-1可以省略不写
import copy 浅层与深层COPY
#!usr/bin/env python
#-*-coding:utf-8-*-
# Author calmyan
import copy
person=['name',['财务部','办公在六层']]
p1=copy.copy(person)#浅COPY
p2=person[:]#浅COPY
p3=list(person)#浅COPY
p1[0]='颜'
p2[0]='陈'
p3[0]='张'
person[1][1]='办公室改到七层'
print(person,p1,p2,p3)
最后是字符串相关的操作:
#!usr/bin/env python
#-*-coding:utf-8-*-
# Author calmyan
#字符串操作
name="my name is {name} and age is {year}!"
name_1="Abc123AA bbr"
name_2=" "
names=name.format(name="calmyan",year=35)#格式化字符
print(names)
print(names.count("m"))#统计该字符串中指定字符的个数
print("添加TAB键的数量",names.expandtabs(tabsize=70))#添加TAB键的数量
print(name.endswith("!"))#判断是否以指定字符结尾
print(names.find("n"))#返回字符所在索引
print(names[names.find("n"):names.find("!")])#返回字符所在索引,可进行切片操作
print("判断类:")
print("是否是在字母大小写和数字之间的范围:",name_1.isalnum())#是否是在字母大小写和数字之间的范围
print("是否是在字母大小写之间的范围:",name_1.isalpha())#是否是在字母大小写之间的范围
print("是否是在十进制整数的范围:",name_1.isdecimal())#是否是在十进制整数的范围
print("是否是在整数的范围:",name_1.isdigit())#是否是整数的范围
print("是否是在整数的范围:","".isnumeric())#是否是整数的范围
print("是否是空格:",names.isnumeric())#是否是空格
print("是否是大写开头:",name_1.istitle())#是否是大写开头
print("是否是全为大写:",name_1.isupper())#是否是全为大写
print("指定字符对字符串进行分割(每个字符):")
print(" ".join(names))#用指定字符对字符串进行分割,包括空格
print(names.ljust(50,"*"))##指定该字符串的长度,不足用指定字符右端补齐
print(names.rjust(50,"*"))##指定该字符串的长度,不足用指定字符左端补齐
print(name.center(50,"="))#指定该字符串的长度,不足用指定字符两端补齐,字符串居中
p=str.maketrans("abcdefg","")#两个字符串进行一一对应替换
print(p)
print("gfedcba".translate(p))#传入将会显示对应的字符
print("对指定字符进行替换:",name_1.replace("A","a"))#对指定字符进行替换,可选定数量,参数不填默认为全部
print("对指定字符进行替换:",name_1.replace("A","a",2))#对指定字符进行替换,可选定数量
print("查找最右边的指定字符:",name_1.rfind(""))#查找最右边的指定字符,返回索引下标
print("按指定字符进行分割:",name_1.split(""))#按指定字符进行分割,字符串中指定字符去除
print("按换行进行分割:",name_1.splitlines())#按换行进行分割
print("字母大小写互换:",name_1.swapcase())#字母大小写互换
print("首字母大写:",name_1.title())#首字母大写
print(name_2.zfill(5))#指定字符串长度,不足左边用0补位 二进制运算
模拟购物车
分享出来,共同进步!
#!usr/bin/env python
#-*-coding:utf-8-*-
# Author calmyan
#name_char=int(input("请输入工资(购物资金):"))#用户输入工资(购物资金)
#商品列表
goodsname=[('手机',2300),
('笔记本电脑',3500),
('平板电视',3900),
('电冰箱',1300),('电磁炉',500)
]
#goodsname=['1',]
#购物车列表
shoplist=[]
#购物统计
shop_count=0
#用户列表
#user_shoplist=['用户名']
while True:
name_char=input("请输入工资(购物资金):")#用户输入工资(购物资金)
if name_char.isdigit():#检测输入是否为整数
name_char=int(name_char)#转为int
break
else:
print('金额不能为0或负数请正确输入金额!')
continue
while True:
#for i in goodsname:
for index,item in enumerate(goodsname):#取出下标输出
print(index,item)
#print(goodsname.index(i),i)
# break
user_index=input('请输入商品编号添加你所在购买的商品,按用\033[31;1mq/Q\033[0m退出>>>:')
if user_index.isdigit():
user_index=int(user_index)
if user_index < len(goodsname) and user_index>=0:#判断所选商品编号在在列表
p_item=goodsname[user_index]#读取下标所在(元素)商品
if p_item[1]<=name_char:#余额是否足够
shoplist.append(p_item)#添加到购物车
name_char-=p_item[1]#扣除金额
shop_count+=p_item[1]#累加购物金额
# print(type(name_char))
#print(shop_count)
print("添加 %s 到购物车,你的购物金额余 \033[31;1m%s\033[0m 元"% p_item,name_char)
else:
print("你的购物金额余 \033[41;1m%s\033[0m 元,无法购买该商品" % name_char)
else:
print('输入错误,该编号 %s的商品不存在!',user_index)
elif user_index=='q'or user_index=='Q':
for up in shoplist:#打印购物清单
print('你的购物清单:',up)
print("你的购物总金额为:\033[32;1m%s\033[0m 元!"% shop_count)
print("你的购物金额余: \033[31;1m%s\033[0m 元!" % name_char)
while True:
confirm=input('你是否确定退出购物?Y/y是 N/n否:')
if confirm== 'Y' or confirm== 'y':
exit(print("谢谢!欢迎您再次光临!"))
elif confirm=='N'or confirm== 'n':
break
else:
print("输入错误!请按提示输入!")
continue
else:
print('输入商品编号错误,请重新输入!')
#以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#
#列表、元组操作
# ' ' 在python里 ' ' 里的内容为 '字符串' 。不加 ' ' 为变量名
#print()打印 # 英文名字大全 http://ename.dict.cn/list/all/M names = ['Cahill','Teenglan','Eric','Peggie','Aalto','Baal','Sadie',
'Gage','Hagan','Jack','Kaley','Mabel','Lacy','Nadine','Pace','Amy'] #通过下标访问列表中的元素,下标从0开始计数
print('---通过下标访问列表中的元素----') print(names[0])
print(names[1],names[3],names[4])
print(names[-1])
print(names[-2]) #还可以倒着取
print(' ') print('---切片:取多个元素---')
print(names[1:4]) #取下标1至下标4之间的数字,包括1,不包括4
print(names[1:-1]) #取下标1至-1的值,不包括-1
print(' ') print('---切片:取下标1至-1的值,不包括-1---')
print(names[0:3]) #取下标1至-1的值,不包括-1
print(names[:3]) #如果是从头开始取,0可以忽略,跟上句效果一样
print(' ') print('---参数默认是0,-1就是倒数第1个----')
print(names[:3]) #如果想取最后一个,必须不能写-1,只能这么写
print(names[3:-1]) #这样-1(最后一个)就不会被包含了
print(' ') print('---参数默认是0----')
print(names[0:5:2]) #后面的2是代表,每隔一个元素,就取一个,默认是1
print(names[::3]) #参数默认是0,所以可以不写
print(' ') print(' ')
print('---追加names.append('')---每次只能追加一个')
names.append('我是新来的',)
print(names)
print(' ') print(' ')
print('---插入names.insert(下标号,名字)---每次只能插入一个')
names.insert(3,'强行插队到下标位置3')
print(names)
print(' ') print(' ')
print('---修改names[下标号]---')
names[5] = '修改换人了'
print(names)
print(' ') print(' ')
print('---删除names.remove('')---')
print(names)
names.remove('Eric')#删除指定元素名字
print(names)
print(' ') print('---删除names.pop(下标号)---')
print(names)
names.pop(2)#删除指定列表中下标的值,默认-1
print(names)
print(' ') print(' ')
print('---拷贝names.copy()---')
print(names)
name_copy = names.copy()
print(name_copy)
print(' ') print(' ')
print('---排序names.sort()和翻转names.reverse()---')
print('3.0里不同数据类型不能放在一起排序了')
print(names)
names.sort()
print(' ')
print(names)
names.reverse()
print(' ')
print(names) print(' ')
print('---扩展names.extend(下标号)---')
print('---数字默认为字符串""可以不加,但是数据类型却是整数--')
print(names)
b = ['',9,'Amy','Amy','b的扩展']
names.extend(b)
print(names)
print(' ') print(' ')
print('---统计names.count(' ')---')
print(names)
cut = names.count('Amy')
print(' ')
print(cut)
print(' ') print(' ')
print('---获取下标names.index(' ')---')
print(names)
idx = names.index('Amy')
print(' ')
print(idx)
print(' ')
列表的使用与测试
#以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#元组
#元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
#它只有2个方法,一个是count,一个是index,完毕。 #列表的写法
name = ['Cahill','Teenglan','Eric','Amy','Amy','Amy','',''] #元组的写法
names = ('Cahill','Teenglan','Eric','Amy','Amy','Amy','Amy','Amy') print(' ')
print('---统计names.count(' ')---')
print(names)
cut = names.count('Amy')
print(' ')
print(cut)
print(' ') print(' ')
print('---获取下标names.index(' ')---')
print(names)
idx = names.index('Amy')
print(' ')
print(idx)
print(' ') #元组不能追加等操作,会报错。
names.append('新加')
元组的使用
#以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎交流py #列表、元组操作浅copy(复制文件的快捷方式)和深copy(复制文件) # names<变量名> print()<打印> names = ['Cahill','Teenglan','Eric','Peggie','Aalto','Baal','Sadie',
'Gage','Hagan','Jack','Kaley','Mabel','Lacy','Nadine','Pace','Amy'] print('---原来列表的内容---')
print(names)
print(' ')
name2 = names.copy() print('---拷贝后列表的内容---')
print(name2)
print(' ') print('---修改拷贝后列表里的内容---')
names[2] =['修改了']
print(names)
print(' ')
print('---对比两个文件的内容---')
print(name2) print(' ')
print('---列表打印-----------------------------------------------------')
print(' ') print('----跳跃打印不写默认值---- ')
print(names[:]) print(' ')
print('---跳跃打印---起始默认0:终止默认-1:跳跃默认1,默认值可以不写')
print(names[1:-3:2]) print(' ')
print('---列表循环打印---for i in names:--- ')
print(' ')
for i in names:
print (i) print(' ')
print(' ')
print('---新的实验浅pocy的用法----------------------------------------------------------------------------------------------------------------------------------------')
print(' ')
print('---重新定义列表,在列表里添加列表---')
name = ['Cahill','Peggie',['Ursula','Val',['Zena','Babb','Eric'],'Teenglan',],'Amy'] print(name)
print(' ') print(' ')
name3 = name.copy()
print('---拷贝后列表的内容---')
print(name3)
print(' ') print('---修改拷贝后列表里的内容---')
name[1] =['改第一层']
name[2][1] =['第二层']
name[2][2][0] =['列表里第三层']
print(name)
print(' ')
print('---对比两个文件的内容---')
print(name3)
print(' ') print('浅pocy 只复制第一层内容,第二层开始只复制其快捷方式')
print(' ') print(' ')
print('---深copy的使用---copy.deepcopy(namett)------完全多层复制---尽量不用------------------')
print(' ') import copy
namett = ['Cahill','Peggie',['Ursula','Val',['Zena','Babb','Eric'],'Teenglan',],'Amy']
print('---重新定义列表---')
print(namett)
nameff = copy.deepcopy(namett)
print('---拷贝后列表的内容---')
print(nameff)
print(' ') print(' ')
print('---修改拷贝后列表里的内容---')
namett[1] =['改第一层']
namett[2][1] =['第二层']
namett[2][2][0] =['列表里第三层']
print(namett)
print('---对比两个文件的内容---连第二第三层都没有跟着修改---')
print(nameff)
print(' ') print(' ')
print('---深copy的使用---完全多层复制-------尽量不用----------------------------------')
print(' ') print(' ')
print('---新的实验-数值的pocy------------------------------------------------------------')
print('数值的pocy---------------------------------------------------------')
a = 1
b = a
print(a)
print(' ')
print(b)
print(' ') print('重新定义a后的对比')
a = 2
print(a)
print(' ')
print(b)
print(' ') print(' ')
print(' ')
print('---浅copy的用法-----------------------------------------------------------')
print(' ')
#import<调用> copy<函数拷贝模块> list()<列表> print()<打印> import copy
person=['name',['saving',100]] p1=copy.copy(person)
p2=person[:]
p3=list(person) print(p1)
print(' ')
print(p2)
print(' ')
print(p3)
print('-----------------------------------------------------------------------------------') #
#列表、元组操作
浅copy(复制文件的快捷方式)和深copy(复制文件)
浅copy歪解
创建一个列表 等于图一
names = [['Eric','Jack']'Alex','Cahill','Rain','Tenglan','Aalto','Toml',]
浅copy 等于图二 浅pocy 只复制第一层内容,第二层开始只复制其快捷方式
name3 = name.copy()
图一
图二
python第二天 列表、元组的更多相关文章
- Python 第二章-列表和元组
第二章-列表和元组 2.0 在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序列号-即元素的位置, 也称为索引.第一个索引是0,第二个是1,以此类推. ...
- python基础(五)列表,元组,集合
列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...
- python记录_day04 列表 元组
今日主要内容: 列表 和 元组 列表 一.列表介绍 列表是一种能存储大量数据的数据结构,是能装对象的对象.由方括号 [] 括起来,能放任意类型的数据,数据之间用逗号隔开 列表存储数据是有顺序的 二.增 ...
- python 序列结构-列表,元组,字典,字符串,集合
列表 """ name_list.__add__( name_list.__getslice__( name_list.__new__( name_list.append ...
- python 学习分享-列表元组篇
1 列表(list) 下面的代码就是把一个变量赋值为列表 a=['laay','aay','ay','y'] 列表中存在索引,可以通过索引来访问列表中的值,也可以通过索引完成切片 print(a[0] ...
- python学习之列表元组,字典
list:元素性质可以不一致,元素还可以是list,可类似数组方法进行索引(也可以用负数索引,-1表示最后一个),可用.append('')进行动态增加,可用pop()删除最后一个或者pop(i)删除 ...
- python之路(列表,元组)
列表 list:基础数据类型之一,可以索引,切片,步长,切片+步长可以增删改查,可迭代,可嵌套字典,元组,列表 一.索引,切片,步长 list01 = [1,2,3,'eric','west'] 1. ...
- Python初学笔记列表&元组&字典
一.从键盘获取 1 print("请输入") 2 username = input("姓名:") 3 age = input("年龄:") ...
- Python中的列表,元组,字符串之间的相互转化
Python中的列表元组和字符串之间的相互转化需要利用,tuple(),list(),str(). 示例如下: >>> the_string = "hello I'am x ...
随机推荐
- [EXP]Drupal < 8.5.11 / < 8.6.10 - RESTful Web Services unserialize() Remote Command Execution (Metasploit)
## # This module requires Metasploit: https://metasploit.com/download # Current source: https://gith ...
- web自动化测试---测试中其他一些常用操作
一些其他常用操作如下: 1.最大化浏览器窗口 driver.maximize_window() 2.后退 driver.back() 3.前进 driver.forward() 4.刷新操作 driv ...
- Can't sendRedirect() after data has committed to the client
resin下 response.sendRedirect("XXX"); 会报异常:java.lang.IllegalStateException: Can't sendRedir ...
- LintCode翻转字符串问题 - python实现
题目描述:试实现一个函数reverseWords,该函数传入参数是一个字符串,返回值是单词间做逆序调整后的字符串(只做单词顺序的调整即可). 例如:传入参数为"the sky is blue ...
- 2.WF 4.5 流程引擎设计思路
本文主要给大家分享下基于WF 4.5框架的流程引擎设计思路 1.流程启动时的数据写入EventMsgPP对象中,ObjectAssemblyType记录流程启动时需要的类型,ObjectContent ...
- Jwt Token 安全策略使用 ECDSA 椭圆曲线加密算法签名/验证
椭圆曲线密码学(Elliptic curve cryptography),简称 ECC,是一种建立公开密钥加密的算法,也就是非对称加密,ECDH 与 ECDSA 是基于 ECC 的算法.类似的还有 R ...
- Linux编程 8 (挂载mount,查看磁盘df du,搜索grep,压缩zgip,归档tar)
一. 挂载存储媒体 linux文件系统将所有的磁盘都并入一个虚拟目录下,当使用新的存储媒体之前,需要把它放到虚拟目录下,这项工作称为挂载(mounting) 1.1 mount 命令 在linux上用 ...
- Linux_CentOS-服务器搭建 <四>
既然tomcat,弄好了,数据库安装好了.我们考虑考虑下.今天带给大家是, 数据库的还原备份: 备份开始: 登录开始: mysql -u root -p 创建一个测试用的数据库test并创 ...
- iOS开发(0):框架QMUIKit的使用 | 使用第三方UI框架 | cocoapods的使用
对于移动APP来说,客户端(iOS或android)的界面开发是必不可少的工作.为了减轻界面开发的工作量,也为了提高开发的速度,选择一个良好的界面框架,是有意义的. iOS开源的界面框架有很多,比如c ...
- 为springboot项目添加springboot-admin监控
我们知道spring-boot-actuator暴露了大量统计和监控信息的端点,spring-boot-admin 就是为此提供的监控项目. 先来看看大概会提供什么样的功能 从图中可以看出,主要内容都 ...