2021-03-16

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('-----------------------------------------------')
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,875评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,569评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,475评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,459评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,537评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,563评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,580评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,326评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,773评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,086评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,252评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,921评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,566评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,190评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,435评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,129评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,125评论 2 352

推荐阅读更多精彩内容

  • 今天跟凌燕老师对话,她说在群里给自己的标签里增加一个“写了30万+字的生涯规划咨询师”,后来这一目标调整到50万字...
    专业的亚瑟阅读 143评论 0 0
  • 官宣:2021西安中考总分700分,中考报名3月12日开始[https://zhuanlan.zhihu.com/...
    凌空_lingkong阅读 173评论 0 0
  • 晚上,天都黑了,不见老公和儿子回来。我焦急万分。把门口灯打开,站在门口等他们。 黑暗中,有个声音传过来,你在干嘛呀...
    大唐王妃阅读 117评论 0 0
  • 才感觉天街小雨润如酥,草色遥看近却无,蓦然抬头,碧玉妆成一树高,万条垂下绿丝绦。春天就这样悄无声色的走进了我的生活...
    e027c75197a7阅读 52评论 0 0
  • 这周的关键词可以用忙碌来形容。找房子,搬家在短短两天内完成,一个人弄完,虽然不是很累,但是如果有个人陪伴的话...
    星星在眨眼呢阅读 131评论 0 1