day8_元祖,字典

2018-10-09  本文已影响0人  逆流而上_2eb6

1.元祖

  元祖:是可以同时存储多个数据的容器,有序的,不可变的。
  语法:使用()将多个元素括起来,用逗号分隔开,元素可以是任何类型的数据。或者直接用逗号隔开,表示的也是一个元祖。
  注意:元祖只有一个元素时,要在元素后加逗号。tuple1=(1,)
  元祖与列表区别 :元祖元素不支持增删改,只能查。列表获取元素的方式,元祖都支持。
可以通过相同的变量个数来一一获取元祖中的元素
  x,y=10,20
  交换变量的值:

a,b=10,20
b,a=a,b   # a=20,b=10

  可以通过在变量前加*来获取部分元素

tuple1=("小鲜肉",20,30,40,30)
name,*score,num=tuple1
print(name,score,num)  #小鲜肉  [20,30,40] 30

  可以通过在列表和元祖前加*,来展开元素

tuple1=(1,2,[2,4])
print(*tuple1)  #1 2 [2,4]

  元祖的运算:+,*,==,is,in,not in

print((1,2)+(3,4))
print((1,2)*3)
print((1,2)==(1,2))
print((1,2) is (1,2)) # False
print((1,2,3) in (1,2,3,4,5))
print((1,2) not in(2,4,5))

  函数:len(),max(),min()
  转换:tuple().注意,字典只能将key值作为元祖元素。
  排序:sorted(),可以通过sorted()对元祖进行排序,得到一个新的列表。

2.字典

  字典dict:是一个容器类的数据类型,可以用来存储多个数据(以键值对的形式存储)
  语法:{key1:value1,key2:value2…………}
  可变,无序:可以增删改查,但不能通过下标获取值
  键(key):用来定位值,要求只能是不可变的数据类型(数值,字符串,元祖……),并且是唯一的。
  值(value):用来存储数据,可以是任何类型的数据
  不同容器类型的使用:
  列表:保存的个数据是同一类的数据(不用区分)
  字典:保存的多个数据是不同类型的数据(需要区分)
  查(获取value):a.通过key 来获取,字典[key]--->获取key对应的值。key必须是存在的,否则会报KeyError b.字典.get(key)--->通过key获取值。key不存在时不报错,为None
确定key存在用[]语法,不确定用get().
  遍历:for a in dict1: ,得到的a是key值。在用dict1[a]得到value(推荐使用,更节省资源)
其他遍历方法:for a in dict1.values():得到value,for key ,value in dict1.items():得到键值对。
  添加键值对
字典[key]=值(key不存在)

dict1={}
dict1["dsj"]=1

  修改
字典[key]=值(key存在)
  删除:删除键值对
a. del 字典[key]
b. pop(key) --->取出key对应的键值对。
  字典相关运算
==:判断两个字典的值是否相等
is:判断两个字典的id是否相等。
in,not in:判断key是否存在于字典
  字典相关函数和方法

  1. len():获取键值对的个数。
  2. clear():清空字典
  3. 字典.copy():返回一个字典的复制
  4. dict.formkeys(序列,值):创建一个字典,序列中的元素分别为一个key,且value=值。
dict1=dict.formkeys("abc",12)
print(dict1)  #{"a":12,"b":12,"c":12}
  1. 字典.get(key)--->key不存在时取none
    字典.get(key,默认值)--->key不存在时取默认值
  2. 字典.value();字典.keys():返回所有的值/key
    字典.items():将键值对转换成元祖,作为一个序列的元素。
       注意:返回的都不是列表,是别的序列。
  3. 字典.setdefault(key)--->添加键值对,值为none
    字典.setdefault(key,值)---->添加键值对,value=值
       注意:key存在时不会修改字典的值,什么也不做。
  4. 字典1.update(字典2)--->使用字典2去更新字典1.(已经存在的key就更新,不存在就添加)

3.集合

集合 :容器,可以同时存储多个数据,可变的,无序的,唯一。
唯一 :自带去重功能。
语法:{元素1,元素2…………} 元素只能是不可变的数据,并且不能重复

集合的增删改查
a.查(获取元素):集合不能获得单独的元素,也不能切片,只能通过遍历
b.增加:集合.add(元素)--->在集合中添加一个元素。
集合1.update(序列)--->将序列中的元素(元素不可变)添加到集合1
c.删除:集合.remove(元素)--->删除指定的元素
d.改:集合不能改。

集合相关的运算
1.包含:集合1>=集合2,或者 集合2<=集合1判断集合1中是否包含集合2
2.交集:& 求2个集合公共的部分。
3.并集:| 求2个集合的并集。
4.差集:集合1-集合2 求集合1中除了集合2以外的部分
5.补集:^ 两个集合除了公共部分以外的部分。

4.数据类型转换

  1. int():浮点数、布尔、部分字符串(34,+34,-34)(34.4不可以,即去掉引号后是一个整数的才可以转换)可以转换成整型
  2. float():整数,bool,部分字符串(去掉引号后是数字)
  3. bool():所有的数据都可以转换成布尔.(当数据为0或者为空[] {},none时为False)
  4. str():所有的数据都可以转成字符串,在数据外加引号就ok。
  5. list():序列才能转化成列表,将序列中的元素作为列表中的元素。字典转换成列表,将key作为元素。
  6. tuple():只能将序列转换成元祖
  7. dict():只有序列,并且每个元素都要有2个值
  8. set():序列可以转换成集合,有去重的功能。
上一篇下一篇

猜你喜欢

热点阅读