python学习:列表、元组、字典
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python学习:列表、元组、字典,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7254字,纯文字阅读大概需要11分钟。
内容图文
一、列表:
列表的下标是从0开始的,最后一个元素的下标可以用 -1,取元素的时候”顾头不顾尾“。定义如下列表:
names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
1、切片:
1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"] 2 >>> names[1:4] #取下标1至下标4之间的数字,包括1,不包括4 3 [‘Tenglan‘, ‘Eric‘, ‘Rain‘] 4 >>> names[1:-1] #取下标1至-1的值,不包括-1 5 [‘Tenglan‘, ‘Eric‘, ‘Rain‘, ‘Tom‘] 6 >>> names[0:3] 7 [‘Alex‘, ‘Tenglan‘, ‘Eric‘] 8 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样 9 [‘Alex‘, ‘Tenglan‘, ‘Eric‘] 10 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写11 [‘Rain‘, ‘Tom‘, ‘Amy‘] 12 >>> names[3:-1] #这样-1就不会被包含了13 [‘Rain‘, ‘Tom‘] 14 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个15 [‘Alex‘, ‘Eric‘, ‘Tom‘] 16 >>> names[::2] #和上句效果一样17 [‘Alex‘, ‘Eric‘, ‘Tom‘]
2、追加append:
1 >>> names 2 [‘Alex‘, ‘Tenglan‘, ‘Eric‘, ‘Rain‘, ‘Tom‘, ‘Amy‘] 3 >>> names.append("我是新来的") 4 >>> names 5 [‘Alex‘, ‘Tenglan‘, ‘Eric‘, ‘Rain‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘]
3、插入insert:
1 >>> names 2 [‘Alex‘, ‘Tenglan‘, ‘Eric‘, ‘Rain‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘] 3 >>> names.insert(2,"强行从Eric前面插入") 4 >>> names 5 [‘Alex‘, ‘Tenglan‘, ‘强行从Eric前面插入‘, ‘Eric‘, ‘Rain‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘] 67 >>> names.insert(5,"从eric后面插入试试新姿势") 8 >>> names 9 [‘Alex‘, ‘Tenglan‘, ‘强行从Eric前面插入‘, ‘Eric‘, ‘Rain‘, ‘从eric后面插入试试新姿势‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘]
4、修改:
1 >>> names 2 [‘Alex‘, ‘Tenglan‘, ‘强行从Eric前面插入‘, ‘Eric‘, ‘Rain‘, ‘从eric后面插入试试新姿势‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘] 3 >>> names[2] = "该换人了"4 >>> names 5 [‘Alex‘, ‘Tenglan‘, ‘该换人了‘, ‘Eric‘, ‘Rain‘, ‘从eric后面插入试试新姿势‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘]
5、删除:
三种方式:
a、del 列表[下标索引]
b、列表.remove("元素名称")
c、列表.pop[下标索引],pop和del的区别在于pop会返回删除的元素,但是del无返回值
1 >>> names 2 [‘Alex‘, ‘Tenglan‘, ‘强行从Eric前面插入‘, ‘Eric‘, ‘Rain‘, ‘从eric后面插入试试新姿势‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘] 3 >>> del names[2] 4 >>> names 5 [‘Alex‘, ‘Tenglan‘, ‘Eric‘, ‘Rain‘, ‘从eric后面插入试试新姿势‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘] 6 >>> del names[4] 7 >>> names 8 [‘Alex‘, ‘Tenglan‘, ‘Eric‘, ‘Rain‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘] 9 >>> 10 >>> names.remove("Eric") #删除指定元素11 >>> names 12 [‘Alex‘, ‘Tenglan‘, ‘Rain‘, ‘Tom‘, ‘Amy‘, ‘我是新来的‘] 13 >>> names.pop() #删除列表最后一个值 14‘我是新来的‘15 >>> names 16 [‘Alex‘, ‘Tenglan‘, ‘Rain‘, ‘Tom‘, ‘Amy‘] 17 >>> names.pop(1) #删除指定位置的元素18Tenglan 19 >>> names 20 [‘Alex‘, ‘Rain‘, ‘Tom‘, ‘Amy‘]
6、扩展extend:
1 >>> names 2 [‘Alex‘, ‘Tenglan‘, ‘Rain‘, ‘Tom‘, ‘Amy‘] 3 >>> b = [1,2,3] 4 >>> names.extend(b) 5 >>> names 6 [‘Alex‘, ‘Tenglan‘, ‘Rain‘, ‘Tom‘, ‘Amy‘, 1, 2, 3]
7、拷贝:
1 >>> import copy 2 >>> names = ["Alex","Tenglan",["Eric",1000],"Rain","Tom","Amy"] 3 >>> name1=names.copy() 4 >>> name1 5 [‘Alex‘, ‘Tenglan‘, [‘Eric‘, 1000], ‘Rain‘, ‘Tom‘, ‘Amy‘] 6 >>> name2 = copy.copy(names) 7 >>> name2 8 [‘Alex‘, ‘Tenglan‘, [‘Eric‘, 1000], ‘Rain‘, ‘Tom‘, ‘Amy‘] 9 >>> name3=names[:] 10 >>> name3 11 [‘Alex‘, ‘Tenglan‘, [‘Eric‘, 1000], ‘Rain‘, ‘Tom‘, ‘Amy‘] 12 >>> name4=list(names) 13 >>> name4 14 [‘Alex‘, ‘Tenglan‘, [‘Eric‘, 1000], ‘Rain‘, ‘Tom‘, ‘Amy‘] 1516上面采取了4种方式对names列表进行了copy操作。 17现在,我们来继续往下看: 18 >>> names 19 [‘Alex‘, ‘Tenglan‘, [‘Eric‘, 1000], ‘Rain‘, ‘Tom‘, ‘Amy‘] 20 >>> name_copy=list(names) 21 >>> name_copy 22 [‘Alex‘, ‘Tenglan‘, [‘Eric‘, 1000], ‘Rain‘, ‘Tom‘, ‘Amy‘] 23 >>> names[1]=‘张三‘24 >>> names 25 [‘Alex‘, ‘张三‘, [‘Eric‘, 1000], ‘Rain‘, ‘Tom‘, ‘Amy‘] 26 >>> name_copy 27 [‘Alex‘, ‘Tenglan‘, [‘Eric‘, 1000], ‘Rain‘, ‘Tom‘, ‘Amy‘] 28注意:这里我们把names列表copy了一个新的列表name_copy,然后我们更改了names表的第2个元素,从结果可以看出新列表name_copy的第2个元素并没有发生改变。 2930接着往下看: 31 >>> names[2][1]=7777 32 >>> names 33 [‘Alex‘, ‘张三‘, [‘Eric‘, 7777], ‘Rain‘, ‘Tom‘, ‘Amy‘] 34 >>> name_copy 35 [‘Alex‘, ‘Tenglan‘, [‘Eric‘, 7777], ‘Rain‘, ‘Tom‘, ‘Amy‘] 36 注意:names列表的第3个元素也是一个列表,这里我们执行names[2][1]=7777后发现,names和name_copy两个列表的相应元素同时发生了改变。 3738这就是深度copy和浅度copy,上面的4中copy方式都是浅度copy,浅度copy只能copy第一层的元素,对于列表中含有的列表的元素,只是copy了这个子列表的一个内存地址而已。 3940如果要实现我们在改变names列表中列表的元素时,copy过来的列表的对应元素不发生变化,必须显示的进行深度copy,往下看: 41 >>> names[2][1]=1521 42 >>> names 43 [‘Alex‘, ‘张三‘, [‘Eric‘, 1521], ‘Rain‘, ‘Tom‘, ‘Amy‘] 44 >>> name_copy2 45 [‘Alex‘, ‘张三‘, [‘Eric‘, 7777], ‘Rain‘, ‘Tom‘, ‘Amy‘]
8、统计count:
统计某个元素在列表中出现的次数。
1 >>> names=(1,2,3,2,4,5,3,2,7,2,3) 2 >>> names.count(3) 3 3 4 >>> names.count(2) 5 4
9、排序sort、反转reverse:
1 >>> names = ["Alex","Tenglan",["Eric",1000],"Rain","Tom","Amy"] 2 >>> names.sort() #排序 3Traceback (most recent call last): 4 File "<stdin>", line 1, in <module> 5 TypeError: ‘<‘not supported between instances of ‘list‘and‘str‘ 6 >>> names.pop(2) 7 [‘Eric‘, 1000] 8 >>> names 9 [‘Alex‘, ‘Tenglan‘, ‘Rain‘, ‘Tom‘, ‘Amy‘] 10 >>> names.sort() #排序11 >>> names 12 [‘Alex‘, ‘Amy‘, ‘Rain‘, ‘Tenglan‘, ‘Tom‘] 1314 >>> names.reverse() #反转15 >>> names 16 [‘Tom‘, ‘Tenglan‘, ‘Rain‘, ‘Amy‘, ‘Alex‘]
列表的排序和反转对中文没有效果:
1 >>> names=[‘zhangsan‘,‘张三‘,‘章邯‘] 2 >>> names.sort() 3 >>> names 4 [‘zhangsan‘, ‘张三‘, ‘章邯‘] 5 >>> names=[‘张三‘,‘zhangsan‘,‘章邯‘] 6 >>> names.sort() 7 >>> names 8 [‘zhangsan‘, ‘张三‘, ‘章邯‘] 9 >>> names.append(‘阿三‘) 10 >>> names 11 [‘zhangsan‘, ‘张三‘, ‘章邯‘, ‘阿三‘] 12 >>> names.sort() 13 >>> names 14 [‘zhangsan‘, ‘张三‘, ‘章邯‘, ‘阿三‘] 15 >>> names.append(‘asan‘) 16 >>> names.sort() 17 >>> names 18 [‘asan‘, ‘zhangsan‘, ‘张三‘, ‘章邯‘, ‘阿三‘]
10、获取下标index:
注意:只返回找到指定元素的第一个下标
1 >>> names 2 [‘asan‘, ‘zhangsan‘, ‘张三‘, ‘章邯‘, ‘张三‘, ‘阿三‘] 3 >>> names.index(‘zhangsan‘) 4 1 5 >>> names.index(‘张三‘) 6 2
二、元组
元组和列表其实差不多,只是元组一旦创建就不允许再修改,所以元组又叫做只读列表。
元组的定义:
names = ("Alex","Tenglan","Eric","Rain","Tom","Amy")
元组只有两个方法:count、index
三、字典
四、购物车作业
需求(列表):
1、启动程序后,让用户输入工资,然后打印商品列表
2、用户选择商品编号购买商品
3、用户选择商品后,检测余额是否够,如果余额够就直接扣款,如果不够就提醒
4、可随时退出,退出时打印已购买的上和余额
1 product_list = [(‘Iphone‘,5800), 2 (‘Mac Pro‘,9800), 3 (‘Bike‘,800), 4 (‘Watch‘,10600), 5 (‘Coffee‘,31), 6 (‘Alex Python‘,120)] 7 shopping_cart = [] 8 9 salary = input("Input your salary: ") 10if salary.isdigit(): 11 salary = int(salary) 12while 1: 13for item in product_list: 14print(product_list.index(item) + 1, item) 1516 user_choice = input("请选择需要购买的商品:").lower() 17if user_choice.isdigit(): 18 user_choice = int(user_choice) 19if user_choice > 0 and user_choice <= len(product_list): 20 p_item = product_list[user_choice - 1] 21if p_item[1] <= salary: 22 shopping_cart.append(p_item) 23 salary = salary - p_item[1] 24print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m"%(p_item[0], salary)) 25else: 26print("\033[32;1m你的余额只剩下【%s】元,无法再购买任何商品!\033[0m"%salary) 27else: 28print("你选择的商品不存在商品列表中!") 29elif user_choice == ‘q‘: 30print("-------shopping cart--------") 31for index, item in enumerate(shopping_cart): 32print(item) 33print("Your current balance is :", salary) 34break35else: 36print(‘Invalid Option...‘)
原文:https://www.cnblogs.com/Ryan-Fei/p/12085080.html
内容总结
以上是互联网集市为您收集整理的python学习:列表、元组、字典全部内容,希望文章能够帮你解决python学习:列表、元组、字典所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。