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 ...
随机推荐
- 课程四(Convolutional Neural Networks),第一周(Foundations of Convolutional Neural Networks) —— 2.Programming assignments:Convolutional Model: step by step
Convolutional Neural Networks: Step by Step Welcome to Course 4's first assignment! In this assignme ...
- TCP/IP 笔记 - ICMPv4和ICMPv6 : Internet控制报文协议
ICMP是一种面向无连接的协议,负责传递可能需要注意的差错和控制报文,差错指示通信网络是否存在错误(如目的主机无法到达.IP路由器无法正常传输数据包等.注意,路由器缓冲区溢出导致的丢包不包括在ICMP ...
- 解决Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name) 中文显示乱码
如果file.Name为中文则乱码.解决办法是方法1:response.setHeader("Content-Disposition", "attachment; fil ...
- 光流法详解之一(LK光流)
Lucas–Kanade光流算法是一种两帧差分的光流估计算法.它由Bruce D. Lucas 和 Takeo Kanade提出 [1]. LK光流法有三个假设条件: 1. 亮度恒定:一个像素点随着时 ...
- [Luogu 3613] 睡觉困难综合征
Description 给定一棵 \(n\) 个点的树,每个点上有位运算 \(opt\) 和一个权值 \(x\),位运算有 &,|,^ 三种. 要求支持: 修改点 \(v\) 的 \(opt\ ...
- openssl rsautl和openssl pkeyutl(文件的非对称加密)
openssl系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html rsautl是rsa的工具,相当于rsa.dgst的部分功能集合,可用于生成 ...
- Dependency Walker使用说明 转载
转载地址:http://blog.csdn.net/swort_177/article/details/5426848?reload 在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字 ...
- C# MVC 用户登录状态判断
来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类AuthenticationAttribute ,代码如下: ...
- Java语言的简介
Java语言的由来 Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称.由James Gosling和同事们共同研发,并在1 ...
- 【mysql】service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误
service MySQL start出错,mysql启动不了,解决mysql: unrecognized service错误的方法如下: [root@ctohome.com ~]# service ...