序列

列表

列表的增删查改
  1. 修改列表元素
    通过下标获取元素,然后重新赋值:列表[下标]=新的值
  2. 列表1+列表2:让列表1和列表2的元素组合在一起产生一个新的列表
    列表*数字:让列表的元素重复n次产生一个新的列表
  3. in,notin操作
    元素in列表:判断指定的元素是否在指定的列表中
  4. 列表函数
    a. 获取列表中最大的元素和最小元素:max(列表)min(列表)
    b. 统计指定元素在列表中出现的次数:列表名.count(统计元素)
    c. 将序列中的每一个元素添加到列表中:列表名.extend(序列)
    d. 获取指定元素在指定列表中第一次出现的索引:列表名.index(元素)
    e. 对原列表中的元素反向存放,不产生新的列表:列表名.reverse()
    f. 对原列表进行排序,不产生新的列表:升序排列列表.sort()
    降序排列列表.sort(reverse=True)
    g. 清空列表:列表名.clear()相当于列表名=[]
    h. 将列表中的元素全部拷贝并生成一个新的列表:列表名.copy()
    注意:列表通过一个列表变量给另一个列表变量赋值得时候,赋的是地址:两个列表对元素进行操作的时候会互相影响
    使用copy或者切片可以避免这个问题

元组

  1. 什么是元组
    元组就是不可变的列表,列表中除了可变的操作以外,其他的操作都适用于元组
    元组值:使用()将元素包含起来,多个元素之间用逗号隔开
    例:(1,2,'3',[1,2,3])
    元组的元素类型可以是任何类型

  2. 增删改的相关操作都不能作用与元组

colors=('red','green','yellow','purple')
print(colors[0]
print(colors[0:3])
print(colors[0::2])
print(len(colors))
  1. 新操作(列表中也可以用):
    a. 可以通过变量直接取元组中的元素,但是变量个数必须与元组的元素数量一致
names=('name1','name2','name3','name4')
x1,x2,x3,x4=names
print(x1,x2,x3,x4)

运行结果:

name1 name2 name3 name4

b. *变量名取的是不确定元素的列表

first,*midle,last=names
print(first,midle,last)
*n1,n2=names
print(n1,n2)
n3,*n4=names
print(n3,n4)

运行结果:

name1 ['name2', 'name3'] name4
['name1', 'name2', 'name3'] name4
name1 ['name2', 'name3', 'name4']

字典

字典也是一种类型的数据类型(序列),存的数据是以键值对的形式出现的,字典中的元素全部都是键值对
字典是可变的(可以增删查改),但是时无序的(不能使用下标)

键值对:键:值(key:value)键值对中key是形式,值才是真正要存放的内容
key:理论上是任何不可变的数据类型,但是实际开发的时候一般使用字符串作为key,key是唯一的
value:可以是任意类型数据

  1. 声明一个字典
    dict1={}创建一个空的字典
    dict2={'a':1,'b':'abc',10:100,('a',2):'abc'}
    dict3=dict([(1,2),(2,3)])

  2. 字典的增删查改
    查:获取字典的元素的值
    字典获取元素的值是通过key来获取的
    字典名[key]
    字典名.get(key)如果不存在则返回None
    注意:如果key值确定存在,使用[]语法获取值,不确定key值是否存在才使用get方法获取
    增加\修改:
    通过key获取字典元素,然后赋值,当key存在时则修改该元素的值,key不存在则添加该键值对
    person={}
    person['height']=1.8
    删除:
    del字典名[key]key必须存在
    字典名.pop(key)弹出key对应的值

  3. 字典的相关属性
    字典名.keys():获取字典所有的key,返回值的类型时dict_keys,但是可以把它当成列表来用
    字典名.values():获取字典所有的值
    字典名.items():将字典中所有的简直对转换成一个一个的元组,key作为元组的第一个元素,value作为元组的第二个元素

student_dict={'name':'张三','stud_id':'py1805','scores':{'english':60,'math':10}}
keys=student_dict.keys()
print(keys,type(keys))

运行结果:

dict_keys(['name', 'stud_id', 'scores']) <class 'dict_keys'>

遍历获取每一个key

for key in keys:
    print(key)
print(student_dict.values())
print(student_dict.items())

运行结果:

name
stud_id
scores
dict_values(['张三', 'py1805', {'english': 60, 'math': 10}])
dict_items([('name', '张三'), ('stud_id', 'py1805'), ('scores', {'english': 60, 'math': 10})])

  1. 遍历字典
    a. 直接遍历字典获取到的是所有的key(推荐使用)
for key in student_dict:
    print(key,student_dict[key])

b. 遍历直接取到key和value(不推荐使用)

forkey,valueinstudent_dict.items():
print(key,value)
  1. 列表中有字典,字典中有字典,字典中有列表
    例:声明一个变量,作用是用来存储一个班级的学生的信息.其中学生的信息包括姓名,性别,年龄,电话
stu_dct={'姓名':['张三','李四','王五'],'性别':['男','女','男'],'年龄':[20,21,21],'电话':['12345','13245','12453']}
for key in stu_dct:
    print('\t'+key+'\t',end='')
print()
num=len(stu_dct[key])
for i in range(0,num):
    for j in stu_dct.values():
        print('\t'+str(j[i])+'\t',end='')
    print()

运行结果:

    姓名      性别      年龄      电话  
    张三      男       20      12345   
    李四      女       21      13245   
    王五      男       21      12453   
  1. 其他操作
    a.fromkeys()
    dict.fromkeys(序列,value)创建一个字典,序列中的元素作为key,value作为值
new_dict=dict.fromkeys(['abc','dcc','123'],'100')
print(new_dict)

b. in
keyin字典:判断字典中是否存在指定的key
c. update
字典1.update(字典2):使用字典2的键值对取更新字典1中的键值对.如果字典2中对应键值对在字典1中不存在就添加,存在就修改为字典2中的值

集合

集合也是一种容器类型的数据类型(序列):数据放在{}中,多个之间只用逗号隔开:{1,2,'a'}
集合时无序的(不饿能通过索引取值),可变(可以增删改),元素不能重复

  1. 怎么声明集合
    a. 声明一个宾凉,赋一个集合值
    set1={1,2,3}
    set2=set()创建一个空的集合
    print(set1,type(set1),set2)
    b. 将其他的数据转换为集合(自带去重)
set2=set('abc1233h')
print(set2)
set3=set([12,'abc','hh',32,12])
print(set3)
  1. 增删查
    a. 查:遍历
    foriteminset2:
    print(item)
    注意:集合没有办法单独获取某一个元素
    b. 增
    集合名.add(元素):在指定集合中添加指定的元素
    set1.add(100)
    update方法
    集合1.update(集合2):将集合2中的元素添加到集合1中并去重
    set1.update({'abc','ss'})
    c. 删
    集合名.remove(元素):在指定的集合中删除指定的元素
    set1.remove('ss')
    集合名.pop():随机删除集合中的元素,一般不用
    set1.pop()
  2. 集合可以进行数学中集合相关的操作:判断是否包含,求交集,并集,差集,补集
    a. 判断是否包含
    集合1>=集合2
    集合1<=集合2
    print({1,2,3,4}>={1})
    b. 求并集:|
    print({1,2,3}|{2,3,4,5})
    c. 求交集:&
    print({1,2,3}&{2,3,4,5})
    d. 求差集:-
    print({1,2,3}-{2,3,4,5})
    print({2,3,4,5}-{1,2,3})
    e. 求补集:^
    print({1,2,3}^{2,3,4,5})
  3. 其他方法
    clear():清空集合
    set1.clear()
    len():获取集合中元素的个数
    len(set1)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容