print('-----------------------------------------------')
# python 列表
# 序列是Python中最基本的数据结构
# 序列中每个值都有对应位置的索引值 索引值从0开始
# Python 有 6 个序列的内置类型,但最常见的是列表和元组
# 列表可以进行的操作:索引,切片,加,乘,检查成员等
# 列表的数据项可以是不同数据类型的数据
# 语法:变量名=[1,2,3...]
# 列表索引(左0右-1)
# 更新列表:可以对列表的数据项进行修改或者更新
# 修改语法:list[索引值]=修改值
# 更新语法:list.append() 会在原列表后添加一个新的数据项
# 实例
list=['阿里巴巴','字节跳动','腾讯']
list.append('华为')
print('更新后的list为:',list)
# 添加成功
# 删除语法 :del list[索引值]
# Python 列表脚本操作符
# +号用于组合 *号用于重复输出
# 实例
list=[1,2,3]
print(len(list)) # 长度
list2=list+[4,5,6]
print(list2) # 组合
print(list*2) # 重复
print(3 in list) # 判断
for x in list:
print(x,end=' ') # 迭代
# Python 列表截取与拼接
# 列表嵌套(因为列表元素支持不同的数据类型,所以列表中可以包括列表)
# 实例
list1=[[1,2,3],[4,5,6]]
# 列表函数与方法
# 函数:len() 返回列表长度 max()返回列表最大值 min()返回最小值 list(seq)将元组转化为列表
# 实例
print(len(list))
print(max(list))
print(min(list))
# seq=(1,2,6)
# list=list(seq)
# print(list)
# 方法
# 1 list.append(obj) 在列表末尾添加新的对象
list.append('wdnmd')
print(list)
# >> [1, 2, 3, 'wdnmd']
# 2 list.count(obj) 统计某个元素在列表中出现的次数
print(list.count(2))
# >> 1
# 3 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list1=[4,5,6]
list.extend(list1)
print(list)
# >> [1, 2, 3, 'wdnmd', 4, 5, 6]
# 4 list.index(obj)从列表中找出某个值第一个匹配项的索引位置
print(list.index(2))
# >> 1
# 5 list.insert(index, obj) 将元素插入指定索引位置
list.insert(1,100)
print(list)
# >> [1, 100, 2, 3, 'wdnmd', 4, 5, 6]
# 6 list.pop([index=-1]) 移除列表指定索引位置的元素(默认为末尾元素),并且返回该元素的值
list.pop(4)
print(list)
# >> [1, 100, 2, 3, 4, 5, 6]
# 7 list.remove(obj) 移除列表中第一个出现的指定值
list.remove(2)
print(list)
# >> [1, 100, 3, 4, 5, 6]
# 8 list.reverse() 反向列表中元素
list.reverse()
print(list)
# >> [6, 5, 4, 3, 100, 1]
# 9 list.sort( key=None, reverse=False)对原列表进行排序
list.sort()
print(list)
# >> [1, 3, 4, 5, 6, 100]
# 10 list.clear() 清空列表
list.clear()
print()
# >>
# 11 list.copy() 制列表
list.copy()
print(list)
# >> [1, 3, 4, 5, 6, 100]
# Python3 元组
# 元组语法:元组名(元素1,元素2,元素3...)
# 元组与列表的不同之处在于元组中的数据是不可变的,元组使用(),列表使用[]
# 元组中元素的值是不可变的 可以拼接或组合
yz1=(1,2,3)
yz2=(4,5,6)
yz3=yz1+yz2
print(yz3)
# >> (1, 2, 3, 4, 5, 6) 拼接成功
# 删除元组
# 元组中的单个元素是不允许删除的 但整个元组是允许删除的
# 实例
del yz1
# print(yz1) # >> NameError: name 'yz1' is not defined 删除成功
# 元组运算符
# 同列表
# 元组索引截取
# 同列表
# 元组内置函数
# len() max() min() tuple()将可迭代类型转化为元组
# 元组不可变是指元组所指向的内存中的内容是不可变的
# 实例
tup=(101,202,303)
print(id(tup))
# >> 1957040517824
# 假装索引修改
# tup[2]=102
# >> TypeError: 'tuple' object does not support item assignment 修改失败
# 重新赋值
tup=(111,222,333)
print(id(tup))
# >> 2078873187136 内存已经发生变化
# 说明对于同一块元组的内存 数值是不能修改的 除非重新开辟空间重新赋值
# Python 字典
# 可变型,可存储任意类型的数据
# 语法: 字典名={键值:元素,键值:元素,键值:元素...}
# 键值必须是唯一的 且为不可变类型的元素 元素可以是任意值
# 通过键值访问字典里的值
# 实例
dict1={'name':'刘俊龙','class':'软件工程一班','sex':'男'}
print(dict1['name'])
# >> 刘俊龙
# 修改字典的值
# 1 添加键值对
# 实例
dict1['school']='河南科技大学'
dict1['age']='20'
print(dict1)
# >>{'name': '刘俊龙', 'class': '软件工程一班', 'sex': '男', 'school': '河南科技大学', 'age': '20'} 添加成功
# 直接通过键值对在末尾添加
# 删除字典元素
# 单一删除 全部清空
del dict1['name']
print(dict1)
# >> {'class': '软件工程一班', 'sex': '男', 'school': '河南科技大学', 'age': '20'} 删除成功
dict1.clear()
print(dict1)
# >> {} 清空成功
del dict1
# id(dict1)
# >> NameError: name 'dict1' is not defined 删除成功
# Python字典值可以是任意类型的Python对象
# 字典的键值必须是唯一的,不能在同一个字典中出现相同的键值 而且键值的数据类型也有限制 必须是不可变类型的数据可以为 数字 字符串 或者元组 不可以是列表
# 如果出现相同的键值 前一个键值对会被后一个键值对给覆盖掉
# 实例
dict1={'name':'刘俊龙','class':'软件工程一班','sex':'男'}
dict1['name']='刘大头'
print(dict1)
# >> {'name': '刘大头', 'class': '软件工程一班', 'sex': '男'} 前一个数被覆盖掉
dict1[('爱好','最喜欢的电影')]=('吃烤红薯','猫和老鼠')
print(dict1)
# >> {'name': '刘大头', 'class': '软件工程一班', 'sex': '男', ('爱好', '最喜欢的电影'): ('吃烤红薯', '猫和老鼠')} 元组类型键值添加成功
# dict1[['最喜欢的人','做过最牛逼的事情']]=['妈妈','做梦殴打特朗普']
# print(dict1)
# >> TypeError: unhashable type: 'list' 直接报错
# 字典内置函数和方法
# 函数
# len()计算元素个数
print(len(dict1))
# >> 4 四组键值对
del str
print(str(dict1))
# {'name': '刘大头', 'class': '软件工程一班', 'sex': '男', ('爱好', '最喜欢的电影'): ('吃烤红薯', '猫和老鼠')} 跟直接输出有啥区别,脱裤放屁。。。
print(type(dict1))
# >> <class 'dict'>
print(id(dict1)) # id() 查看内存地址 type查看变量数值类型
# 方法
# 1 radiansdict.clear()
# 删除字典内所有元素
# 2 radiansdict.copy()
dict2=dict1.copy()
print(dict2)
# >> {'name': '刘大头', 'class': '软件工程一班', 'sex': '男', ('爱好', '最喜欢的电影'): ('吃烤红薯', '猫和老鼠')}
# 复制一个字典
# 3 radiansdict.fromkeys()
# 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
# 4 radiansdict.get(key, default=None)
# 返回指定键的值,如果键不在字典中返回 default 设置的默认值
# 5 key in dict
# 如果键在字典dict里返回true,否则返回false
# 6 radiansdict.items()
# 以列表返回可遍历的(键, 值) 元组数组
# 7 radiansdict.keys()
# 返回一个迭代器,可以使用 list() 来转换为列表
print(dict1.keys())
# >> dict_keys(['name', 'class', 'sex', ('爱好', '最喜欢的电影')]) 以列表形式返回字典键值
# 8 radiansdict.setdefault(key, default=None)
# 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict1.setdefault('high',182)
print(dict1)
# >> {'name': '刘大头', 'class': '软件工程一班', 'sex': '男', ('爱好', '最喜欢的电影'): ('吃烤红薯', '猫和老鼠'), 'high': 182} 添加成功
# 9 radiansdict.update(dict2)
# 把字典dict2的键/值对更新到dict里
dict2={'weight':'80kg'}
dict1.update(dict2)
print(dict1)
# >> {'name': '刘大头', 'class': '软件工程一班', 'sex': '男', ('爱好', '最喜欢的电影'): ('吃烤红薯', '猫和老鼠'), 'high': 182, 'weight': '80kg'} 更新成功
# 10 radiansdict.values()
# 返回一个迭代器,可以使用 list() 来转换为列表
print(dict1.values())
# >> dict_values(['刘大头', '软件工程一班', '男', ('吃烤红薯', '猫和老鼠'), 182, '80kg']) 返回一个数值列表
# 11 pop(key[,default])
# 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
dict1.pop('name')
print(dict1)
# >> {'class': '软件工程一班', 'sex': '男', ('爱好', '最喜欢的电影'): ('吃烤红薯', '猫和老鼠'), 'high': 182, 'weight': '80kg'}
# 12 popitem()
# 随机返回并删除字典中的最后一对键和值。
# 字典应用实例(注意事项)
# 字典初始化时必须同时对键值对进行初始化,不能单独的对键值进行初始化
# 字典支持无极嵌套
cities={
'郑州':{'二七区':['二七塔','二七路','亚细亚大商场'],'大学城':['郑州大学','河南工业大学','万达电影院']},
'洛阳':{'洛龙区':['河南科技大学','洛阳理工大学','泉舜购物中心'],'伊滨区':['洛阳师范学院','洛阳外国语中学']},
'开封':{'龙亭区':['清明上河圆','河南大学','包公府'],'金明区':['金明大店','开封北站']}
}
for i in cities['郑州']:
print(i)
# >>二七区
# 大学城
for i in cities['洛阳']['洛龙区']:
print(i)
# >> 河南科技大学
# 洛阳理工大学
# 泉舜购物中心
# 使用字典记录数据再分级(成绩录入与查询)
student={}
write=1
while write:
break
name=str(input('请输入你的名字'))
gread=int(input('请输入你的分数'))
student[str(name)]=gread
write=int(input('继续输入?\n 1/继续 0/退出'))
print('name gread'.center(20,'-'))
for name,gread in student.items():
if 100>=gread>=90:
print( '%s %s A'.center(20,'-')%(name,gread))
elif 90>gread>=60:
print('%s %s B'.center(20, '-') % (name, gread))
elif 0<gread<60:
print('%s %s C'.center(20, '-') % (name, gread))
# 测试成功
# 获取字典中最大的值及其键
prices={
'可乐':2.5,
'啤酒':4.0,
'薯条':5.0
}
max_prices=max(zip(prices.values(),prices.keys()))
print(max_prices) # 使用zip()函数
# >> (5.0, '薯条')
# 在 Python 3.x 下,dict.keys 返回的是 dict_keys 对象若需要转换为列表,使用:list(dict.values() list(dict.keys())
print(type(prices.values()))
# >> <class 'dict_values'>
values=prices.values()
print(list(values))
print('-----------------------------------------------')
2021-03-16
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天跟凌燕老师对话,她说在群里给自己的标签里增加一个“写了30万+字的生涯规划咨询师”,后来这一目标调整到50万字...
- 官宣:2021西安中考总分700分,中考报名3月12日开始[https://zhuanlan.zhihu.com/...