一、列表

1、列表定义

names=["Jhon","Lucy","Michel","Tom","Wiliam"]

列表切片:

names=["HeXin","ZhangLiang",["caijie","LiSi"],"LiYun","TianJun",'GuYun']
print(names)
print(names[0])
print(names[1:3]) #不能取到索引为3的列表元素
print(names[-1])#取列表的倒数第一位的值
print(names[-2:]) #取倒数两个值
print(names[0:3])
print(names[:3]) #与print(names[0:3]) 等价print(names.index("GuYun"))  # 打印输出索引值
print(names[names.index("GuYun")])
print(names.count("LiYun"))  #打印输出列表中"LiYun"的个数

结果:

['HeXin', 'ZhangLiang', ['caijie', 'LiSi'], 'LiYun', 'TianJun', 'GuYun', 'LiYun']
HeXin
['ZhangLiang', ['caijie', 'LiSi']]
LiYun
['GuYun', 'LiYun']
['HeXin', 'ZhangLiang', ['caijie', 'LiSi']]
['HeXin', 'ZhangLiang', ['caijie', 'LiSi']]
5
GuYun
2

2、列表元素的追加与删除

names=["HeXin","ZhangLiang",["caijie","LiSi"],"LiYun","TianJun",'GuYun',"LiYun"]
print(names)
#列表追加:
names.append("李斯") #默认插入到列尾names.insert(1,"唐宇") #指定位置插入names[2]="肖静"  #指定位置插入print("-----after append-----\n",names)
#列表删除:
names.remove("LiYun")
del names[1] #删除列表中索引为1的值
names.pop()#默认删除最后一个值
names.pop(0)#删除第一个值
print("-----after delete-----\n",names)

运行结果:

['HeXin', 'ZhangLiang', ['caijie', 'LiSi'], 'LiYun', 'TianJun', 'GuYun', 'LiYun']
-----after append-----['HeXin', '唐宇', '肖静', ['caijie', 'LiSi'], 'LiYun', 'TianJun', 'GuYun', 'LiYun', '李斯']
-----after delete-----['肖静', ['caijie', 'LiSi'], 'TianJun', 'GuYun', 'LiYun']

删除整个列表:del names

反转列表值的位置:name.reverse()

排序:names.sort()

3、列表复制

语句:import copy

列表扩展:

names=["HeXin","ZhangLiang",["caijie","LiSi"],"LiYun","TianJun",'GuYun',"LiYun"]
print(names)names2=[1,2,3,4]
names.extend(names2) #将names2的值添加到names中
print(names,names2)

运行结果:

['HeXin', 'ZhangLiang', ['caijie', 'LiSi'], 'LiYun', 'TianJun', 'GuYun', 'LiYun']
['HeXin', 'ZhangLiang', ['caijie', 'LiSi'], 'LiYun', 'TianJun', 'GuYun', 'LiYun', 1, 2, 3, 4] [1, 2, 3, 4]

列表复制与变量复制略有不同:

import copy
#变量的复制:
name1="LiHai"
name2=name1
name1="TianJun"
print("-----name1>>",name1)
print("-----name2>>",name2)#列表的复制:
names=['1','2','3']
names2=names.copy() #浅copy
names[0] = 55
print("-----names>>",names)
print("-----names2>>",names2)names3=[1,2,[5,7],3]
print("-----修改前的names3>>",names3)
names4=copy.copy(names3) #浅copy
names5=copy.deepcopy(names3) #深copy
names3[2][0]=66
names3[0]=88
print("-----names3>>",names3)
print("-----names4>>",names4)
print("-----names5>>",names5)

结果:

-----name1>> TianJun
-----name2>> LiHai
-----names>> [55, '2', '3']
-----names2>> ['1', '2', '3']
-----修改前的names3>> [1, 2, [5, 7], 3]
-----names3>> [88, 2, [66, 7], 3]
-----names4>> [1, 2, [66, 7], 3]
-----names5>> [1, 2, [5, 7], 3]

变量name2被赋值之后不会随name1的改变而改变,列表mames5在深copy的条件下,其结果与变量的复制效果一样,并没有随names3的改变而改变;而列表names4通过浅copy后,其最外层不会随names3的改变而改变,但内层会随names3的改变而改变。

4、利用for循环打印列表names

names=["HeXin","ZhangLiang",["caijie","LiSi"],"LiYun","TianJun",'GuYun',"LiYun"]
for i in names:print(i)

结果:

HeXin
ZhangLiang
['caijie', 'LiSi']
LiYun
TianJun
GuYun
LiYun

5、不用for循环打印列表

names=["HeXin","ZhangLiang",["caijie","LiSi"],"LiYun","TianJun",'GuYun',"LiYun"]
print(names[0:-1:2]) #打印列表中索引值为0到-1的值,步长为2
print(names[::1]) #打印列表中所有值

结果:

['HeXin', ['caijie', 'LiSi'], 'TianJun']
['HeXin', 'ZhangLiang', ['caijie', 'LiSi'], 'LiYun', 'TianJun', 'GuYun', 'LiYun']

注意:列表打印属于“顾头不顾尾”,如print(names[0:2]) ,结果只能输出列表的前两个值。

利用列表书写购物车程序:

(1)启动程序后,让用户输入工资,然后打印商品列表;

(2)用户输入相应的商品编号购买商品

(3)用户输入商品编号后,系统检测余额是否足够,足够则直接扣款,不够则提示

(4)可随时退出购物,并打印已购商品和余额

shopping_list=[]
product_list=[['iphone',5800],['mac pro',9800],['bike',800],['watch',10600],['coffee',31]
]salary=input('input your salary:')
if salary.isdigit():salary=int(salary)while True:for index, item in enumerate(product_list):#enumerate:读取列表的索引#print(product_list.index(item),item) 等价于上一句话print(index,item)user_choice=input('选择要买什么?')if user_choice.isdigit():#如果输入的是数字user_choice=int(user_choice)#将字符窜转换为整型if user_choice <len(product_list) and  user_choice>=0:#如果用户输入的数字在user_choice列表的长度范围之内p_item=product_list[user_choice]#product_list列表中商品价格赋值给p_itemif p_item[1] <= salary:shopping_list.append(p_item)salary-=p_item[1]print('Added %s into shopping cart,your current banlance is \033[31;1m%s\033[0m'%(p_item,salary))else:print('\033[41;1m你的余额只剩[%s]啦\033[0m'% salary)else:print('product code[%s] is not exist'% user_choice)elif user_choice=='q':print('....shopping list....')for p in shopping_list:print(p)print('your current balance:',salary)exit()else:print('Invalid option')

二、元组

元组一旦创建不能修改,所以又叫只读列表。

元组只有两个方法:count和index

元组定义:names=('Jim','Lucy')

三、字典

字典是一种Key-value的数据类型,是无序的。

1、字典相关操作

#字典定义 :
info={'stu001':'Lily','stu002':'Jack','stu003':'John',
}
print(info)
print(info['stu002']) #打印输出stu002的值
info["stu002"]="张三" #修改值
info["stu004"]="HeQian" #新增
#del info #删除字典info
del info["stu001"]  #删除指定值
print("操作后的字典>>>",info)b={'stu001':"yanlin",1:3,2:5}
info.update(b)#更新字典
print("更新后的字典>>>",info)c=info.fromkeys([6,7,8],"test")#初始化新字典,并给每个key赋值test
print("初始化后的字典>>>",c)
print(info.items())#字典转成列表c=dict.fromkeys([6,7,8],[1,{"name":"Micle"},234])#初始化新字典,三个key将共享一个值
print(c)
c[7][1]['name']="Cherry"#修改字典值
print(c)print("--------字典循环 ------")
for i in info:print(i,info[i])#推介使用此方法循环
print("---------")for k,v in info.items():print(k,v)

结果:

{'stu003': 'John', 'stu002': 'Jack', 'stu001': 'Lily'}
Jack
操作后的字典>>> {'stu003': 'John', 'stu002': '张三', 'stu004': 'HeQian'}
更新后的字典>>> {1: 3, 'stu002': '张三', 'stu001': 'yanlin', 'stu004': 'HeQian', 'stu003': 'John', 2: 5}
初始化后的字典>>> {8: 'test', 6: 'test', 7: 'test'}
dict_items([(1, 3), ('stu002', '张三'), ('stu001', 'yanlin'), ('stu004', 'HeQian'), ('stu003', 'John'), (2, 5)])
{8: [1, {'name': 'Micle'}, 234], 6: [1, {'name': 'Micle'}, 234], 7: [1, {'name': 'Micle'}, 234]}
{8: [1, {'name': 'Cherry'}, 234], 6: [1, {'name': 'Cherry'}, 234], 7: [1, {'name': 'Cherry'}, 234]}
--------字典循环 ------
1 3
stu002 张三
stu001 yanlin
stu004 HeQian
stu003 John
2 5
---------
1 3
stu002 张三
stu001 yanlin
stu004 HeQian
stu003 John
2 5

2、字典嵌套

av_catalog = {"欧美":{"www.youporn.com": ["很多免费的,世界最大的","质量一般"],"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]},"日韩":{"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]},"大陆":{"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]}
}av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"#修改内容
print(av_catalog["大陆"]["1024"]) #打印输出被修改的内容
av_catalog.setdefault("taiwan",{"www.baidu.com":[1,2]}) #新增字典元素
print(av_catalog)
av_catalog.setdefault("大陆",{"www.baidu.com":[1,2]})
print(av_catalog)

结果:

['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']
{'日韩': {'tokyo-hot': ['质量怎样不清楚,个人已经不喜欢日韩范了', '听说是收费的']}, '大陆': {'1024': ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']}, 'taiwan': {'www.baidu.com': [1, 2]}, '欧美': {'www.youporn.com': ['很多免费的,世界最大的', '质量一般'], 'letmedothistoyou.com': ['多是自拍,高质量图片很多', '资源不多,更新慢'], 'x-art.com': ['质量很高,真的很高', '全部收费,屌比请绕过'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourporn高点']}}
{'日韩': {'tokyo-hot': ['质量怎样不清楚,个人已经不喜欢日韩范了', '听说是收费的']}, '大陆': {'1024': ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']}, 'taiwan': {'www.baidu.com': [1, 2]}, '欧美': {'www.youporn.com': ['很多免费的,世界最大的', '质量一般'], 'letmedothistoyou.com': ['多是自拍,高质量图片很多', '资源不多,更新慢'], 'x-art.com': ['质量很高,真的很高', '全部收费,屌比请绕过'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourporn高点']}}

3、三级菜单的实现

data = {"北京":{"朝阳":{"yi":['炸鸡','汉堡','03'],"er":['可乐','雪碧']},"昌平":{"san":['06','益达','023'],"si":['米饭','玉米']},},"四川":{"成都": {"双流": ['肥肠粉', '麻辣烫'],"新都": ['烧烤', '卤鸡脚']},"绵阳": {"wu": ['啤酒', '香槟', '鸭脖'],"liu": ['柠檬', '橘子']},},"安徽":{"合肥": {"qi": ['011', '042', '063'],"ba": ['104', '105']},"黄山": {"jiu": ['066', '07', '033'],"shi": ['304', '025']}}
}
ch1=False
while  not ch1:for i in data:print(i)choice1=input('>>>:')if choice1 in data:while not ch1:for i2 in data[choice1]:print("\t",i2)choice2 = input('>>>:')if choice2 in data[choice1]:while not ch1:for i3 in data[choice1][choice2]:print("\t\t",i3)choice3 = input('>>>:')if choice3 in data[choice1][choice2]:for i4 in data[choice1][choice2][choice3]:print("\t\t\t", i4)choice4=input('已经是最后一层,按b返回到上一级>>>:')if choice4=="b":passelif choice4=="q":ch1=Trueif choice3 == "b":breakelif choice3 == "q":ch1 = Trueif choice2 == "b":breakelif choice2 == "q":ch1 = True

四、集合

集合是一个无序的、不重复的数据组合。

list1=[1,4,5,6,3,5,3,6] #定义一个列表
list1=set(list1) #变成集合,去重
list2=set([3,5,33,67,8,6])
list3=set([3,5,6])
list4=set([4,2])
print(list1,type(list1))print(list1.intersection(list2))#取两个集合的交集
print(list1.union(list2))#取并集
print(list1.difference(list2))#取差集,即在list1中有的,在list2中没有的
print(list1.issubset(list2))#子集
print(list1.issuperset(list2))
print(list3.issubset(list1))#list3是list1的子集
print(list1.symmetric_difference(list2))#对称差集,即取双方互相没有的值
print("----------")print(list2.isdisjoint(list4))#判断是否有交集
print(list1 & list2)#交集
print(list2 | list1)#并集
print(list1 - list2)#差集
print(list1 ^ list2)#对称差集list4.add(78)#添加一个值
list4.update([00,22])#添加多个值
list4.remove(2)#删除
print(list4)
print(list1.pop())#删除任意一个值,并返回删除的值
print(list2.discard("34"))#删除指定值,若不存在该值,系统不会报错,有别于remove

运行结果:

{1, 3, 4, 5, 6} <class 'set'>
{3, 5, 6}
{1, 33, 3, 4, 5, 6, 67, 8}
{1, 4}
False
False
True
{33, 1, 67, 4, 8}
----------
True
{3, 5, 6}
{33, 1, 67, 3, 5, 6, 4, 8}
{1, 4}
{33, 1, 67, 4, 8}
{0, 4, 78, 22}
1
None

转载于:https://www.cnblogs.com/yanlin-10/p/7222918.html

Python基础之列表、元组、字典、集合的使用相关推荐

  1. python列表元组字典集合实验心得_python学习小总结(列表、元组、字典、集合、字符串)...

    ---恢复内容开始--- 一.列表(list) 1.添加 append():追加,在列表末尾添加元素. 列表名.append(添加的元素) extend():扩展,在列表末尾添加元素. 列表名.ext ...

  2. Day2 - Python基础2 列表、字典、集合 --转自金角大王

    Day2 - Python基础2 列表.字典.集合 --转自金角大王 Posted on 2018-01-24 13:23 Byd_lei 阅读(41) 评论(0)  编辑 收藏 本节内容 列表.元组 ...

  3. python中列表 元组 字典 集合的区别

    参考文章:python中列表 元组 字典 集合的区别

  4. python_列表——元组——字典——集合

    列表--元组--字典--集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...

  5. python列表添加元素的三种方法定义集合数据对象_(1) List,tuple,dictionary,Python语法基础集,一,之,列表,元组,字典,集合...

    Python序列(列表.元组.字典.集合) 一.列表(List)与列表推导式 (一)列表(list) 1.列表是Python内置 可变序列 (列表中元素可增加删除或修改): 2.列表元素放在一对中括号 ...

  6. Python列表/元组/字典/集合详解

    本文是对Python中的列表.元组.字典.集合知识的梳理总结,将Python的重要知识点梳理成条,通过一个简单的员工管理系统(EMS)实战,可以深入的了解Python的基本知识.本文基本上涵盖了在日常 ...

  7. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过 ...

  8. Python 列表元组字典集合

    列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片.合并.删除等操作 可通过索引来向指定位置插入元素 可通过po ...

  9. python入门——列表+元组+字典+集合

    列表 列表是最常用的python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 1.列表嵌套(相当于二维数组) a=["b",'c','d'] ...

  10. python变量 数据类型 列表 元组 字典

    python基础语法2 变量 数据类型与类型转换 列表 添加列表元素 修改元素 删除列表元素 组织列表 创建数值列表 操作列表 元组 元组转列表 字典 创建字典 列表取值 字典删除增加修改 变量 变量 ...

最新文章

  1. 假期ACM训练计划表
  2. 阿里云AIoT全新工业和农业云端一体机深度产品,全链路数据化实现效率提升
  3. 跨平台移动开发_PhoneGap 使用Accelerometer 加速器
  4. Windbg教程-调试非托管程序的基本命令中
  5. Educational Codeforces Round 114总结
  6. SOA 普元EOS 工作流开发
  7. 《JavaScript高级程序设计》目录笔记
  8. 带中文说明书OSLO Light 6.2-ISO 1CD光学软件
  9. oracle数据库提示ORA-01033
  10. 网上流行护眼色的RGB值和颜色代码(豆沙绿:RGB颜色 红:199,绿:237,蓝:204)
  11. 【Python3】作业车间调度,SPT规则,LPT规则
  12. Jetpack LiveData
  13. Redis数据库 专题
  14. word制作招聘启示文档教学
  15. 地理遥感专业属于计算机行业吗,遥感科学与技术专业怎么样?
  16. Onedrive如何同步文件夹
  17. Scrapy爬虫:抓取大量斗图网站最新表情图片
  18. 黎明者 pat basic 练习八十九 狼人杀-简单版
  19. mysql 授予数据库权限_MySQL:授予**对数据库的所有**权限
  20. React Redux 进阶: Hooks 版本用法 Custom Context 局部 Store 实践

热门文章

  1. vue.js+muse-ui制作在线简历编辑
  2. RGB与CMYK颜色模式调色原理
  3. matlab 三角函数 积化和差,三角函数积化和差与和差化积公式
  4. 基于EEG信号与面部表情的连续情绪识别
  5. 1419D2 Sage‘s Birthday
  6. python 伪造源ip_Python实现爬虫设置代理IP和伪装成浏览器的方法共享
  7. 2022年农产品行业研究报告
  8. 001数据类型-字面值-运算规则
  9. requestLayout() improperly called by android.widget.TextView
  10. android 自定义textview在onlayout中设置setTypeface的时候报错 requestLayout() improperly called by ...