python第二天 列表、元组

今天学习了列表、元组相关的知识:与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可以省略不写
View Code

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)
View Code

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

 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("是否是在整数的范围:","123".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","1234567")#两个字符串进行一一对应替换
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("3"))#查找最右边的指定字符,返回索引下标
35 print("按指定字符进行分割:",name_1.split("3"))#按指定字符进行分割,字符串中指定字符去除
36 print("按换行进行分割:",name_1.splitlines())#按换行进行分割
37 print("字母大小写互换:",name_1.swapcase())#字母大小写互换
38 print("首字母大写:",name_1.title())#首字母大写
39 print(name_2.zfill(5))#指定字符串长度,不足左边用0补位 二进制运算
View Code

模拟购物车

分享出来,共同进步!

 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('请输入商品编号添加你所在购买的商品,按用33[31;1mq/Q33[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 到购物车,你的购物金额余 33[31;1m%s33[0m 元"% p_item,name_char)
44             else:
45                 print("你的购物金额余 33[41;1m%s33[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("你的购物总金额为:33[32;1m%s33[0m 元!"% shop_count)
52         print("你的购物金额余: 33[31;1m%s33[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('输入商品编号错误,请重新输入!')
View Code
  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 
 48 print('                              ')
 49 print('---插入names.insert(下标号,名字)---每次只能插入一个')
 50 names.insert(3,'强行插队到下标位置3')
 51 print(names)
 52 print('                              ')
 53 
 54 print('                              ')
 55 print('---修改names[下标号]---')
 56 names[5] = '修改换人了'
 57 print(names)
 58 print('                              ')
 59 
 60 print('                              ')
 61 print('---删除names.remove('')---')
 62 print(names)
 63 names.remove('Eric')#删除指定元素名字
 64 print(names)
 65 print('                              ')
 66 
 67 print('---删除names.pop(下标号)---')
 68 print(names)
 69 names.pop(2)#删除指定列表中下标的值,默认-1
 70 print(names)
 71 print('                              ')
 72 
 73 print('                              ')
 74 print('---拷贝names.copy()---')
 75 print(names)
 76 name_copy = names.copy()
 77 print(name_copy)
 78 print('                              ')
 79 
 80 print('                              ')
 81 print('---排序names.sort()和翻转names.reverse()---')
 82 print('3.0里不同数据类型不能放在一起排序了')
 83 print(names)
 84 names.sort()
 85 print('                              ')
 86 print(names)
 87 names.reverse()
 88 print('                              ')
 89 print(names)
 90 
 91 print('                              ')
 92 print('---扩展names.extend(下标号)---')
 93 print('---数字默认为字符串""可以不加,但是数据类型却是整数--')
 94 print(names)
 95 b = ['3',9,'Amy','Amy','b的扩展']
 96 names.extend(b)
 97 print(names)
 98 print('                              ')
 99 
100 
101 print('                              ')
102 print('---统计names.count(' ')---')
103 print(names)
104 cut = names.count('Amy')
105 print('                              ')
106 print(cut)
107 print('                              ')
108 
109 
110 print('                              ')
111 print('---获取下标names.index(' ')---')
112 print(names)
113 idx = names.index('Amy')
114 print('                              ')
115 print(idx)
116 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','5','8']
 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 
21 print('                              ')
22 print('---获取下标names.index(' ')---')
23 print(names)
24 idx = names.index('Amy')
25 print('                              ')
26 print(idx)
27 print('                              ')
28 
29 #元组不能追加等操作,会报错。
30 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()

图一

图二

您的资助是我最大的动力!
金额随意,欢迎来赏!

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

如果,想给予我更多的鼓励,求打

因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【莫柔落切】!

联系或打赏博主【莫柔落切】!https://home.cnblogs.com/u/uge3/

原文地址:https://www.cnblogs.com/uge3/p/6806414.html