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 ...
随机推荐
- 1.Django自学课堂
1.django manage.py startproject project_name -->创建工程 2.python manage.py startapp app_name --& ...
- Jenkins系列之一——初识
Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 功能 Jenkins功能包括 ...
- jenkins内部分享ppt
持续集成Continuous integration简介(持续集成是什么) .持续集成源于极限编程(XP),是一种软件实践,软件开发过程中集成步骤是一个漫长并且无法预测的过程.集成过程中可能会爆 ...
- [java初探总结篇]__java初探总结
前言 终于,java初探系列的学习,要告一阶段了,java初探系列在我的计划中是从头学java中的第一个阶段,知识主要涉及java的基础知识,所以在笔记上实在花了不少的功夫.虽然是在第一阶段上面花费了 ...
- 深入理解v-model
原文链接:http://www.geeee.top/2019/04/03/vue-v-model/ 转载请注明出处 v-model v-model 是vue的一个语法糖,用于在表单控件或者在组件上创建 ...
- c# Newtonsoft.Json封装
public static T Deserialize<T>(string content) where T : class, new() { return JsonConvert.Des ...
- Visual Studio 代码风格约束
团队内部若能统一代码风格对于日后的项目维护大有裨益,但面对厚达十几甚至几十页的代码风格规范,开发人员难免产生抵触心理.Python和Go等在语言层面就对代码风格作了一定的约束,但C#并没有,为解决这个 ...
- LINQ 【增、删、改、查】数据绑定
LINQ,语言集成查询(Language Integrated Query) 是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操 ...
- 【Java每日一题】20161205
package Dec2016; import java.util.HashSet; public class Ques1205 { public static void main(String[] ...
- How to Find the Standard Deviation in Minitab
Standard deviation, represented by the Greek Letter sigma σ, is a measure of dispersement in statist ...