今天学习了列表、元组相关的知识:与C中的数组列表相似,元组为只读列表:

以及切片相关操作:

  1. #!usr/bin/env python
  2. #-*-coding:utf-8-*-
  3. # Author calmyan
  4. #元组,列表
  5. names=['zy','gy','xp',['2r','t3','t4'],'lh','xc']
  6. print(names)
  7. print(names[0],names[2])
  8. print(names[1:3])#切片左往右
  9. print(names[2])#切片
  10. print(names[-1])#切片从后开始取
  11. print(names[-2:])#切片左往右最后的省略
  12. print(names)
  13. names.append('lh')#追加
  14. print('追加后;',names)
  15. names.insert(3,'crh')#插入位置
  16. print('插入位置后:',names)
  17. names[2]='ggy'#修改
  18. print('修改后:',names)
  19. del names[2]
  20. print('删除后:',names)
  21. print('统计个数:',names.count('lh'))#统计内空个数
  22. names_id=names.index('gy')#内容所在的下标
  23. names_user=names[names.index('gy')]#下标所对应的内容
  24. print(names_user)
  25. print(names_id)
  26. #names.clear()#清空列表
  27. print('原序列打印:',names)
  28. names.reverse()#反转列表
  29. print('反转序列打印:',names)
  30. #names.sort()#排号序默认为ACSII码表
  31. print('排号后打印:',names)
  32.  
  33. names2=[1,2,3,4,5,6]
  34. names.extend(names2)#合并names2列表
  35. print('合并后打印:',names)
  36. print('第二列表:',names2)
  37. import copy
  38. names3=copy.deepcopy(names)#完全COPY
  39. #names3=names.copy()#复制names列表 赋于names3 浅复制 子列表为指针地址
  40. print('列表3',names3)
  41. print('列表1',names)
  42. names3[0]='修改1'
  43. names3[3][1]='修改二层'
  44. print('列表3',names3)
  45. print('列表1',names)
  46. for i in names:
  47. print (i)
  48. for i in range(names.__len__()):#__len__列表元素个数(长度)
  49. if names[i]=='crh':
  50. print(names[i])
  51. print(i)
  52. # for i in range(1,names.__len__(),2):
  53. # print(i)
  54. print(names[0:-1:2])#开始位 结束位 步长()
  55. print(names[::2])#0和-1可以省略不写

import copy 浅层与深层COPY

  1. #!usr/bin/env python
  2. #-*-coding:utf-8-*-
  3. # Author calmyan
  4. import copy
  5. person=['name',['财务部','办公在六层']]
  6. p1=copy.copy(person)#浅COPY
  7. p2=person[:]#浅COPY
  8. p3=list(person)#浅COPY
  9. p1[0]='颜'
  10. p2[0]='陈'
  11. p3[0]='张'
  12. person[1][1]='办公室改到七层'
  13. print(person,p1,p2,p3)

最后是字符串相关的操作:

  1. #!usr/bin/env python
  2. #-*-coding:utf-8-*-
  3. # Author calmyan
  4. #字符串操作
  5. name="my name is {name} and age is {year}!"
  6. name_1="Abc123AA bbr"
  7. name_2=" "
  8. names=name.format(name="calmyan",year=35)#格式化字符
  9. print(names)
  10. print(names.count("m"))#统计该字符串中指定字符的个数
  11. print("添加TAB键的数量",names.expandtabs(tabsize=70))#添加TAB键的数量
  12. print(name.endswith("!"))#判断是否以指定字符结尾
  13. print(names.find("n"))#返回字符所在索引
  14. print(names[names.find("n"):names.find("!")])#返回字符所在索引,可进行切片操作
  15. print("判断类:")
  16. print("是否是在字母大小写和数字之间的范围:",name_1.isalnum())#是否是在字母大小写和数字之间的范围
  17. print("是否是在字母大小写之间的范围:",name_1.isalpha())#是否是在字母大小写之间的范围
  18. print("是否是在十进制整数的范围:",name_1.isdecimal())#是否是在十进制整数的范围
  19. print("是否是在整数的范围:",name_1.isdigit())#是否是整数的范围
  20. print("是否是在整数的范围:","".isnumeric())#是否是整数的范围
  21. print("是否是空格:",names.isnumeric())#是否是空格
  22. print("是否是大写开头:",name_1.istitle())#是否是大写开头
  23. print("是否是全为大写:",name_1.isupper())#是否是全为大写
  24. print("指定字符对字符串进行分割(每个字符):")
  25. print(" ".join(names))#用指定字符对字符串进行分割,包括空格
  26. print(names.ljust(50,"*"))##指定该字符串的长度,不足用指定字符右端补齐
  27. print(names.rjust(50,"*"))##指定该字符串的长度,不足用指定字符左端补齐
  28. print(name.center(50,"="))#指定该字符串的长度,不足用指定字符两端补齐,字符串居中
  29. p=str.maketrans("abcdefg","")#两个字符串进行一一对应替换
  30. print(p)
  31. print("gfedcba".translate(p))#传入将会显示对应的字符
  32. print("对指定字符进行替换:",name_1.replace("A","a"))#对指定字符进行替换,可选定数量,参数不填默认为全部
  33. print("对指定字符进行替换:",name_1.replace("A","a",2))#对指定字符进行替换,可选定数量
  34. print("查找最右边的指定字符:",name_1.rfind(""))#查找最右边的指定字符,返回索引下标
  35. print("按指定字符进行分割:",name_1.split(""))#按指定字符进行分割,字符串中指定字符去除
  36. print("按换行进行分割:",name_1.splitlines())#按换行进行分割
  37. print("字母大小写互换:",name_1.swapcase())#字母大小写互换
  38. print("首字母大写:",name_1.title())#首字母大写
  39. print(name_2.zfill(5))#指定字符串长度,不足左边用0补位 二进制运算

模拟购物车

分享出来,共同进步!

  1. #!usr/bin/env python
  2. #-*-coding:utf-8-*-
  3. # Author calmyan
  4. #name_char=int(input("请输入工资(购物资金):"))#用户输入工资(购物资金)
  5. #商品列表
  6. goodsname=[('手机',2300),
  7. ('笔记本电脑',3500),
  8. ('平板电视',3900),
  9. ('电冰箱',1300),('电磁炉',500)
  10. ]
  11. #goodsname=['1',]
  12. #购物车列表
  13. shoplist=[]
  14. #购物统计
  15. shop_count=0
  16. #用户列表
  17. #user_shoplist=['用户名']
  18. while True:
  19. name_char=input("请输入工资(购物资金):")#用户输入工资(购物资金)
  20. if name_char.isdigit():#检测输入是否为整数
  21. name_char=int(name_char)#转为int
  22. break
  23. else:
  24. print('金额不能为0或负数请正确输入金额!')
  25. continue
  26. while True:
  27. #for i in goodsname:
  28. for index,item in enumerate(goodsname):#取出下标输出
  29. print(index,item)
  30. #print(goodsname.index(i),i)
  31. # break
  32. user_index=input('请输入商品编号添加你所在购买的商品,按用\033[31;1mq/Q\033[0m退出>>>:')
  33. if user_index.isdigit():
  34. user_index=int(user_index)
  35. if user_index < len(goodsname) and user_index>=0:#判断所选商品编号在在列表
  36. p_item=goodsname[user_index]#读取下标所在(元素)商品
  37. if p_item[1]<=name_char:#余额是否足够
  38. shoplist.append(p_item)#添加到购物车
  39. name_char-=p_item[1]#扣除金额
  40. shop_count+=p_item[1]#累加购物金额
  41. # print(type(name_char))
  42. #print(shop_count)
  43. print("添加 %s 到购物车,你的购物金额余 \033[31;1m%s\033[0m 元"% p_item,name_char)
  44. else:
  45. print("你的购物金额余 \033[41;1m%s\033[0m 元,无法购买该商品" % name_char)
  46. else:
  47. print('输入错误,该编号 %s的商品不存在!',user_index)
  48. elif user_index=='q'or user_index=='Q':
  49. for up in shoplist:#打印购物清单
  50. print('你的购物清单:',up)
  51. print("你的购物总金额为:\033[32;1m%s\033[0m 元!"% shop_count)
  52. print("你的购物金额余: \033[31;1m%s\033[0m 元!" % name_char)
  53. while True:
  54. confirm=input('你是否确定退出购物?Y/y是 N/n否:')
  55. if confirm== 'Y' or confirm== 'y':
  56. exit(print("谢谢!欢迎您再次光临!"))
  57. elif confirm=='N'or confirm== 'n':
  58. break
  59. else:
  60. print("输入错误!请按提示输入!")
  61. continue
  62. else:
  63. print('输入商品编号错误,请重新输入!')
  1. #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
  2. #
  3. #列表、元组操作
  4. # ' ' 在python里 ' ' 里的内容为 '字符串' 。不加 ' ' 为变量名
  5. #print()打印
  6.  
  7. # 英文名字大全 http://ename.dict.cn/list/all/M
  8.  
  9. names = ['Cahill','Teenglan','Eric','Peggie','Aalto','Baal','Sadie',
  10. 'Gage','Hagan','Jack','Kaley','Mabel','Lacy','Nadine','Pace','Amy']
  11.  
  12. #通过下标访问列表中的元素,下标从0开始计数
  13. print('---通过下标访问列表中的元素----')
  14.  
  15. print(names[0])
  16. print(names[1],names[3],names[4])
  17. print(names[-1])
  18. print(names[-2]) #还可以倒着取
  19. print(' ')
  20.  
  21. print('---切片:取多个元素---')
  22. print(names[1:4]) #取下标1至下标4之间的数字,包括1,不包括4
  23. print(names[1:-1]) #取下标1至-1的值,不包括-1
  24. print(' ')
  25.  
  26. print('---切片:取下标1至-1的值,不包括-1---')
  27. print(names[0:3]) #取下标1至-1的值,不包括-1
  28. print(names[:3]) #如果是从头开始取,0可以忽略,跟上句效果一样
  29. print(' ')
  30.  
  31. print('---参数默认是0,-1就是倒数第1个----')
  32. print(names[:3]) #如果想取最后一个,必须不能写-1,只能这么写
  33. print(names[3:-1]) #这样-1(最后一个)就不会被包含了
  34. print(' ')
  35.  
  36. print('---参数默认是0----')
  37. print(names[0:5:2]) #后面的2是代表,每隔一个元素,就取一个,默认是1
  38. print(names[::3]) #参数默认是0,所以可以不写
  39. print(' ')
  40.  
  41. print(' ')
  42. print('---追加names.append('')---每次只能追加一个')
  43. names.append('我是新来的',)
  44. print(names)
  45. print(' ')
  46.  
  47. print(' ')
  48. print('---插入names.insert(下标号,名字)---每次只能插入一个')
  49. names.insert(3,'强行插队到下标位置3')
  50. print(names)
  51. print(' ')
  52.  
  53. print(' ')
  54. print('---修改names[下标号]---')
  55. names[5] = '修改换人了'
  56. print(names)
  57. print(' ')
  58.  
  59. print(' ')
  60. print('---删除names.remove('')---')
  61. print(names)
  62. names.remove('Eric')#删除指定元素名字
  63. print(names)
  64. print(' ')
  65.  
  66. print('---删除names.pop(下标号)---')
  67. print(names)
  68. names.pop(2)#删除指定列表中下标的值,默认-1
  69. print(names)
  70. print(' ')
  71.  
  72. print(' ')
  73. print('---拷贝names.copy()---')
  74. print(names)
  75. name_copy = names.copy()
  76. print(name_copy)
  77. print(' ')
  78.  
  79. print(' ')
  80. print('---排序names.sort()和翻转names.reverse()---')
  81. print('3.0里不同数据类型不能放在一起排序了')
  82. print(names)
  83. names.sort()
  84. print(' ')
  85. print(names)
  86. names.reverse()
  87. print(' ')
  88. print(names)
  89.  
  90. print(' ')
  91. print('---扩展names.extend(下标号)---')
  92. print('---数字默认为字符串""可以不加,但是数据类型却是整数--')
  93. print(names)
  94. b = ['',9,'Amy','Amy','b的扩展']
  95. names.extend(b)
  96. print(names)
  97. print(' ')
  98.  
  99. print(' ')
  100. print('---统计names.count(' ')---')
  101. print(names)
  102. cut = names.count('Amy')
  103. print(' ')
  104. print(cut)
  105. print(' ')
  106.  
  107. print(' ')
  108. print('---获取下标names.index(' ')---')
  109. print(names)
  110. idx = names.index('Amy')
  111. print(' ')
  112. print(idx)
  113. print(' ')

列表的使用与测试

  1. #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
  2. #元组
  3. #元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
  4. #它只有2个方法,一个是count,一个是index,完毕。
  5.  
  6. #列表的写法
  7. name = ['Cahill','Teenglan','Eric','Amy','Amy','Amy','','']
  8.  
  9. #元组的写法
  10. names = ('Cahill','Teenglan','Eric','Amy','Amy','Amy','Amy','Amy')
  11.  
  12. print(' ')
  13. print('---统计names.count(' ')---')
  14. print(names)
  15. cut = names.count('Amy')
  16. print(' ')
  17. print(cut)
  18. print(' ')
  19.  
  20. print(' ')
  21. print('---获取下标names.index(' ')---')
  22. print(names)
  23. idx = names.index('Amy')
  24. print(' ')
  25. print(idx)
  26. print(' ')
  27.  
  28. #元组不能追加等操作,会报错。
  29. names.append('新加')

元组的使用

  1. #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎交流py
  2.  
  3. #列表、元组操作浅copy(复制文件的快捷方式)和深copy(复制文件)
  4.  
  5. # names<变量名> print()<打印>
  6.  
  7. names = ['Cahill','Teenglan','Eric','Peggie','Aalto','Baal','Sadie',
  8. 'Gage','Hagan','Jack','Kaley','Mabel','Lacy','Nadine','Pace','Amy']
  9.  
  10. print('---原来列表的内容---')
  11. print(names)
  12. print(' ')
  13. name2 = names.copy()
  14.  
  15. print('---拷贝后列表的内容---')
  16. print(name2)
  17. print(' ')
  18.  
  19. print('---修改拷贝后列表里的内容---')
  20. names[2] =['修改了']
  21. print(names)
  22. print(' ')
  23. print('---对比两个文件的内容---')
  24. print(name2)
  25.  
  26. print(' ')
  27. print('---列表打印-----------------------------------------------------')
  28. print(' ')
  29.  
  30. print('----跳跃打印不写默认值---- ')
  31. print(names[:])
  32.  
  33. print(' ')
  34. print('---跳跃打印---起始默认0:终止默认-1:跳跃默认1,默认值可以不写')
  35. print(names[1:-3:2])
  36.  
  37. print(' ')
  38. print('---列表循环打印---for i in names:--- ')
  39. print(' ')
  40. for i in names:
  41. print (i)
  42.  
  43. print(' ')
  44. print(' ')
  45. print('---新的实验浅pocy的用法----------------------------------------------------------------------------------------------------------------------------------------')
  46. print(' ')
  47. print('---重新定义列表,在列表里添加列表---')
  48. name = ['Cahill','Peggie',['Ursula','Val',['Zena','Babb','Eric'],'Teenglan',],'Amy']
  49.  
  50. print(name)
  51. print(' ')
  52.  
  53. print(' ')
  54. name3 = name.copy()
  55. print('---拷贝后列表的内容---')
  56. print(name3)
  57. print(' ')
  58.  
  59. print('---修改拷贝后列表里的内容---')
  60. name[1] =['改第一层']
  61. name[2][1] =['第二层']
  62. name[2][2][0] =['列表里第三层']
  63. print(name)
  64. print(' ')
  65. print('---对比两个文件的内容---')
  66. print(name3)
  67. print(' ')
  68.  
  69. print('浅pocy 只复制第一层内容,第二层开始只复制其快捷方式')
  70. print(' ')
  71.  
  72. print(' ')
  73. print('---深copy的使用---copy.deepcopy(namett)------完全多层复制---尽量不用------------------')
  74. print(' ')
  75.  
  76. import copy
  77. namett = ['Cahill','Peggie',['Ursula','Val',['Zena','Babb','Eric'],'Teenglan',],'Amy']
  78. print('---重新定义列表---')
  79. print(namett)
  80. nameff = copy.deepcopy(namett)
  81. print('---拷贝后列表的内容---')
  82. print(nameff)
  83. print(' ')
  84.  
  85. print(' ')
  86. print('---修改拷贝后列表里的内容---')
  87. namett[1] =['改第一层']
  88. namett[2][1] =['第二层']
  89. namett[2][2][0] =['列表里第三层']
  90. print(namett)
  91. print('---对比两个文件的内容---连第二第三层都没有跟着修改---')
  92. print(nameff)
  93. print(' ')
  94.  
  95. print(' ')
  96. print('---深copy的使用---完全多层复制-------尽量不用----------------------------------')
  97. print(' ')
  98.  
  99. print(' ')
  100. print('---新的实验-数值的pocy------------------------------------------------------------')
  101. print('数值的pocy---------------------------------------------------------')
  102. a = 1
  103. b = a
  104. print(a)
  105. print(' ')
  106. print(b)
  107. print(' ')
  108.  
  109. print('重新定义a后的对比')
  110. a = 2
  111. print(a)
  112. print(' ')
  113. print(b)
  114. print(' ')
  115.  
  116. print(' ')
  117. print(' ')
  118. print('---浅copy的用法-----------------------------------------------------------')
  119. print(' ')
  120. #import<调用> copy<函数拷贝模块> list()<列表> print()<打印>
  121.  
  122. import copy
  123. person=['name',['saving',100]]
  124.  
  125. p1=copy.copy(person)
  126. p2=person[:]
  127. p3=list(person)
  128.  
  129. print(p1)
  130. print(' ')
  131. print(p2)
  132. print(' ')
  133. print(p3)
  134. print('-----------------------------------------------------------------------------------')
  135.  
  136. #
  137. #列表、元组操作

浅copy(复制文件的快捷方式)和深copy(复制文件)

浅copy歪解

创建一个列表    等于图一

names = [['Eric','Jack']'Alex','Cahill','Rain','Tenglan','Aalto','Toml',]

浅copy    等于图二   浅pocy 只复制第一层内容,第二层开始只复制其快捷方式

name3 = name.copy()

图一

图二

python第二天 列表、元组的更多相关文章

  1. Python 第二章-列表和元组

    第二章-列表和元组 2.0      在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序列号-即元素的位置, 也称为索引.第一个索引是0,第二个是1,以此类推. ...

  2. python基础(五)列表,元组,集合

    列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...

  3. python记录_day04 列表 元组

    今日主要内容: 列表 和 元组 列表 一.列表介绍 列表是一种能存储大量数据的数据结构,是能装对象的对象.由方括号 [] 括起来,能放任意类型的数据,数据之间用逗号隔开 列表存储数据是有顺序的 二.增 ...

  4. python 序列结构-列表,元组,字典,字符串,集合

    列表 """ name_list.__add__( name_list.__getslice__( name_list.__new__( name_list.append ...

  5. python 学习分享-列表元组篇

    1 列表(list) 下面的代码就是把一个变量赋值为列表 a=['laay','aay','ay','y'] 列表中存在索引,可以通过索引来访问列表中的值,也可以通过索引完成切片 print(a[0] ...

  6. python学习之列表元组,字典

    list:元素性质可以不一致,元素还可以是list,可类似数组方法进行索引(也可以用负数索引,-1表示最后一个),可用.append('')进行动态增加,可用pop()删除最后一个或者pop(i)删除 ...

  7. python之路(列表,元组)

    列表 list:基础数据类型之一,可以索引,切片,步长,切片+步长可以增删改查,可迭代,可嵌套字典,元组,列表 一.索引,切片,步长 list01 = [1,2,3,'eric','west'] 1. ...

  8. Python初学笔记列表&元组&字典

    一.从键盘获取 1 print("请输入") 2 username = input("姓名:") 3 age = input("年龄:") ...

  9. Python中的列表,元组,字符串之间的相互转化

    Python中的列表元组和字符串之间的相互转化需要利用,tuple(),list(),str(). 示例如下: >>> the_string = "hello I'am x ...

随机推荐

  1. 1.Django自学课堂

    1.django manage.py startproject project_name   -->创建工程 2.python manage.py startapp app_name   --& ...

  2. Jenkins系列之一——初识

    Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 功能 Jenkins功能包括 ...

  3. jenkins内部分享ppt

    持续集成Continuous integration简介(持续集成是什么)    .持续集成源于极限编程(XP),是一种软件实践,软件开发过程中集成步骤是一个漫长并且无法预测的过程.集成过程中可能会爆 ...

  4. [java初探总结篇]__java初探总结

    前言 终于,java初探系列的学习,要告一阶段了,java初探系列在我的计划中是从头学java中的第一个阶段,知识主要涉及java的基础知识,所以在笔记上实在花了不少的功夫.虽然是在第一阶段上面花费了 ...

  5. 深入理解v-model

    原文链接:http://www.geeee.top/2019/04/03/vue-v-model/ 转载请注明出处 v-model v-model 是vue的一个语法糖,用于在表单控件或者在组件上创建 ...

  6. c# Newtonsoft.Json封装

    public static T Deserialize<T>(string content) where T : class, new() { return JsonConvert.Des ...

  7. Visual Studio 代码风格约束

    团队内部若能统一代码风格对于日后的项目维护大有裨益,但面对厚达十几甚至几十页的代码风格规范,开发人员难免产生抵触心理.Python和Go等在语言层面就对代码风格作了一定的约束,但C#并没有,为解决这个 ...

  8. LINQ 【增、删、改、查】数据绑定

    LINQ,语言集成查询(Language Integrated Query) 是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操 ...

  9. 【Java每日一题】20161205

    package Dec2016; import java.util.HashSet; public class Ques1205 { public static void main(String[] ...

  10. How to Find the Standard Deviation in Minitab

    Standard deviation, represented by the Greek Letter sigma σ, is a measure of dispersement in statist ...