列表、字典、元组、集合

一、列表

1、定义“在【】内,用逗号分隔开多个任意数据类型的值

      x1 = [1,"a",[1,2]]    #本质x1 = list([1,"a",[1,2]])

2、类型转换

      但凡能被for循环遍历的数据类型都可以传给list()转换成列表类型,list()会跟for循环一样遍历出数据

      list("wdad")    #结果:【"w","d","a","d"】

      list([1,2,3])    #结果: 【1,2,3】

      list({"name:","jason","age":18})    #结果:【"name","age"】

3、使用

3.1按索引存取值(正向存取+反向存取),即可存也可取

      正向取(从左往右)

l = ["egon","tony","jason"]

print(l(0))

        反向取(负号表示从右往左)

      l [-1]

        对于list来说,即可以按照索引取值,又可以按照索引修改指定位置的值,但如果索引不存在则报错

l =  ["egon","tony","jason"]

l [1] = "Anna"

"egon" "Anna" "jason"

  3.2切片(顾头不顾尾,步长)

        顾头不顾尾,取出索引为0到3的元素

l = ["egon",34,"tom","jason"]

print(l[0:3])

        步长:0:3:2,第三个参数2代表步长,会从0开始,每次累加一个2即可,所以会取出索引0、2的元素

l = ["egon",34,"tom","jason"]

print(l[0:3:2])

3.3长度

>>>len(l)

3.4成员运算in和not in

>>>"egon" in l

True

>>>"XXX" not in l

True

3.5添加

      append()列表尾部的追加元素

>>> l1 = ["a","b","c"]

>>>l1.append("d")

>>>l1

["a","b","c","d"]

    extend()一次性在列表尾部添加多个元素

>>>l1 = ["a","b","c"]

>>>l1.extend("a,b,c")

["a","b","c","a","b","c"]


      insert()在指定位置插

>>>l = ["egon",34,"tom","jason"]

>>>l.insert(0,18)

>>>print(l)

[18, 'egon', 34, 'tom', 'jason']

3.6删除:

l = ["egon",34,"tom","jason"]

del l[1]      #删除的元素为1,也可直接删除整个列表,直接del + 列表名即可

print(l)

['egon', 'tom', 'jason']

pop()默认删除列表最后一个元素,并将删除的值返回括号内可以通过加索引值来指定删除元素

l = ["egon",34,"tom","jason"]

res=l.pop()

print(l)

['egon', 34, 'tom']

remove()括号内指定删除哪个元素,没有返回值

l = ["egon",34,"tom","jason"]

res=l.remove(34)

print(l)

['egon', 'tom', 'jason']

3.7  reverse()返转列表内元素顺序

l = ["egon",34,"tom","jason"]

l.reverse()

print(l)

['jason', 'tom', 34, 'egon']

3.8 sort()给列表内所有元素排序

1、排序时列表元素之间必须是相同数据类型,不可混搭,否则报错

>>> l = [11,22,3,42,7,55]

>>> l.sort()

>>> l

[3, 7, 11, 22, 42, 55]  # 默认从小到大排序

>>> l = [11,22,3,42,7,55]

>>> l.sort(reverse=True)  # reverse用来指定是否跌倒排序,默认为False

>>> l

[55, 42, 22, 11, 7, 3]

2、了解知识:我们常用的数字类型比较大小,但其实,字符串、列表等都可以比较大小,原理相同,都是依次比较

3.9 循环

>>>l = ["egon",34,"tom","jason"]

>>>for i in l:

    >>print(i)

egon

34

tom

jason

二、元组

1、作用:元组与列表类似,也是可以存多个任意类型的元素,不同之处在于元组的元素不能修改,即元组相当于不可变的

                列表,用于记录多个固定不允许修改的值,单纯用于取。

2、定义方式:在()内用逗号分隔开多个任意类型的值

>>>countries = ("中国","美国","英国")  #本质countries = tuple("中国","美国","英国")

#强调:如果元组内只有一个值,则必须加一个逗号,否则()就只是包含的意思而非定义元组

3、类型转换:但凡能被for循环的遍历的数据类型都可以传给tuple()转换成元组类型

>>> tuple('wdad') # 结果:('w', 'd', 'a', 'd')

>>> tuple([1,2,3]) # 结果:(1, 2, 3)

>>> tuple({"name":"jason","age":18}) # 结果:('name', 'age')

>>> tuple((1,2,3)) # 结果:(1, 2, 3)

>>> tuple({1,2,3,4}) # 结果:(1, 2, 3, 4)

#tuple()会跟for循环一样遍历出数据类型中包含的每一个元素然后放到元组中

三、字典

1、定义:在{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key则必须

是不可变类型,通常key应该是str类型,因为str类型对value有描述的功能

info={'name':'tony','age':18,'sex':'male'} #本质info=dict({....})

# 也可以这么定义字典

info=dict(name='tony',age=18,sex='male') # info={'age': 18, 'sex': 'male', 'name': 'tony'}

2、类型转换

>>> info=dict([['name','tony'],('age',18)])

>>> info

{'age': 18, 'name': 'tony'}

fromkeys会从元组中取出每个值当做key,然后与None组成key:value放到字典中

>>> {}.fromkeys(('name','age','sex'),None) 

{'age': None, 'sex': None, 'name': None}

3、使用

    3.1按key存取值,可存可取

取:

    dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

            print(dic["hobbies"][1])

basketball

对于赋值操作,如果key原先不存在于字典,则会新增key:value

对于赋值操作,如果key原先存在于字典,则会修改对应value的值

  3.2 长度len

    dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

        print(len(dic))

  3.3 成员运算 in 和 not in

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

          print("name" in dic)

  3.4删除

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

        print(dic.pop("name"))    #返回删除的值 egon

  3.5 键keys()

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

        dic.keys()

        print(dic)

        值values()

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

      dic.values()

        键值对items()

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

      dic.items()

  3.6 循环

默认遍历的是字典的key

for key in dic:

        print(key)

只遍在key

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

for key in dic.keys():

          print(key)

只遍历value

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

for value in dic.values():

        print(value)

遍历key与value

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

for key in dic.items():

        print(key)

4、get()

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

print(dic.get("name"))

#key存在,则获取key对应的value值

#key不存 在,可以设置默认返回的值

5、pop()  删除指定的key对应的键对值,并返回值

6、popitem() 随机删除一组键值对,并将删除的键值放到元组内返回

7、update() 用新字典更新旧字典,有则修改,无则添加

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

print(dic.update({"name":"Anna"}))

8、setdafault()  #key不存在则新增键值对,并将新增的value返回

dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}

res = dic.setdefault("k1",789)

print(res)

四、集合

1、作用:集合、list、tuple、dict、一样都可以存放多个值,但是集合主要用于:去重、关系运算

2、定义:在{}内用逗号分隔开多个元素,集合具备以下三个特点:

1、每个元素必须是不可变类型

2、集合内没有重复的元素

3、集合内元素无序

3、类型转换:但凡能被for循环的遍历的数据类型,不可变类型都可以传给set()转换成集合类型

4、使用

1、求两个用户所有的好友(重复好友只留一个)

friends1 = {"a","b","c","d"}

friends2 = {"c","d",'e',"b"}

print(friends1|friends2)

2、交集(&)求两个用户的共同好友

3、差集(-)

4、对称差集(^)求两个两户独有的好友们(即去掉共有的好友)

5、值是否相等(==)

五、去重

集合去重复有局限性

1、只能什对不可变类型

2、集合本身是无序的,去重之后无法保留原来的顺序

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

推荐阅读更多精彩内容