Python基础day-4[dict,set,bool]

布尔类型:

  True和False

  所有的数据类型自带布尔值,只有0,None,空的布尔值为False

字典dict:

  特性:dict中使用key和对应的value来存储数据,dict不像 list那样,数据越多查询越慢.dict中key必须是不可变类型,或者说必须是可hash类型.value的值是可以改变的,可以是任意类型的数据.字典的取值是无序的.无法通过索引取值.

  定义dict:

  d = {key:value,key:value,key:value}

  d = {‘name‘:‘abc‘,‘age‘:18,1:‘id‘}

  新增:

  d = {}

  d[‘x‘] = 1

  取值: 通过key取值

  print(d[‘name‘])

  print(d[1])

  循环:

  for i in d:
  print(i)     #利用for循环取直接取字典内容,只能取出字典的key
  print(d[i])  #利用取出的key,打出对应的value

  嵌套使用:  list和字典可以互相套,list中可以有字典,字典的value也可以是列表,注意:list是不可hash类型,也就说不能作为key

  user_info=[                 #定义一个列表,列表中使用字典存储用户名和密码
  {‘username‘:‘egon‘,‘password‘:‘123‘},
  {‘username‘:‘alex‘,‘password‘:‘alex3714‘},
  {‘username‘:‘yuanhao‘,‘password‘:‘sb123‘},
  ]
  for item in user_info:     #for循环提取list中的dict
  print(item[‘username‘],item[‘password‘])   #打印dict中的 username和password

  成员运算:

  d = {‘x‘:1,‘u‘:2}

  print(‘x‘ in d)

  print(1 in d.values())

  dict的常用操作:

    d.clear():清空字典的所有内容

    d = {‘name‘:‘abc‘,‘age‘:18,1:‘id‘}
    d.clear()
    print(d)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{}

Process finished with exit code 0

    d.get():带返回值的取值方式,当取出不存的值时会返回None 不会报错

    d = {‘name‘:‘abc‘,‘age‘:18,1:‘id‘}
    print(d.get(‘abc‘))

D:\Python\Python36-32\python.exe E:/Python/tmp.py
None

Process finished with exit code 0

    d.items():以元组的方式显示键值对,for循环时可以给两个变量,同时取出key和value

    d = {‘name‘:‘abc‘,‘age‘:18,1:‘id‘}
    for k,v in d.items():
    print(k,v)
    print(‘==================‘)
    for i in d.items():
    print(i)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
name abc
age 18
1 id
==================
(‘name‘, ‘abc‘)
(‘age‘, 18)
(1, ‘id‘)

Process finished with exit code 0

    d.keys and d.values:指定提取全部的key或者value

    d = {‘name‘:‘abc‘,‘age‘:18,1:‘id‘}
    print(d.keys())
    print(d.values())

D:\Python\Python36-32\python.exe E:/Python/tmp.py
dict_keys([‘name‘, ‘age‘, 1])
dict_values([‘abc‘, 18, ‘id‘])

Process finished with exit code 0

    d.pop():pop是带返回值的,精确删除某个key

    d = {‘name‘:‘abc‘,‘age‘:18,1:‘id‘}
    print(d.pop(‘age‘))        #pop()必须给予一个key,否则报错
    print(d)
    print(d.pop(‘abc‘,‘没有abc那个key‘))  #由于pop带返回值,所以可以指定返回信息,来去除错误信息.不指定返回值,当删除一个不存在的key时会报错.

D:\Python\Python36-32\python.exe E:/Python/tmp.py
18
{‘name‘: ‘abc‘, 1: ‘id‘}
没有abc那个key

Process finished with exit code 0

    d.popitem():随机删除一组key和对应的value

    d = {‘name‘:‘abc‘,‘age‘:18,1:‘id‘}
    d.popitem()
    print(d)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{‘name‘: ‘abc‘, ‘age‘: 18}

Process finished with exit code 0

    d.setdefault():向dict中添加key和对应的value,如果key已存在则不添加(也不会报错.)

    d = {‘name‘:‘abc‘,‘age‘:18,1:‘id‘}
    d.setdefault(‘aaa‘,111)
    print(d)
    d.setdefault(‘name‘,‘abc‘)
    print(d)
    d.setdefault(‘name‘,‘abc123‘)
    print(d)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{‘name‘: ‘abc‘, ‘age‘: 18, 1: ‘id‘, ‘aaa‘: 111}
{‘name‘: ‘abc‘, ‘age‘: 18, 1: ‘id‘, ‘aaa‘: 111}
{‘name‘: ‘abc‘, ‘age‘: 18, 1: ‘id‘, ‘aaa‘: 111}

Process finished with exit code 0

    几种新建字典的方式:

d1={}
d2=dict()
print(d1,d2)
d3=dict(x=1,y=2,z=3)
print(d3)
d4=dict({‘x‘:1,‘y‘:2,‘z‘:3})
print(d4)d5=dict([(‘x‘,1),(‘y‘,2),(‘z‘,3)])print(d5)
D:\Python\Python36-32\python.exe E:/Python/tmp.py
{} {}
{‘x‘: 1, ‘y‘: 2, ‘z‘: 3}
{‘x‘: 1, ‘y‘: 2, ‘z‘: 3}{‘x‘: 1, ‘y‘: 2, ‘z‘: 3}

Process finished with exit code 0

    d.fromkeys(): 创建的dict的格式化,前面所有的key匹配同一个value

    d={}.fromkeys([‘name‘,‘age‘],None)
    print(d)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{‘name‘: None, ‘age‘: None}

Process finished with exit code 0

    d.update():更新列表,没有的key就添加,key如果存在就更新value

    d = {‘name‘:‘abc‘,‘age‘:18,1:‘id‘}
    d1 = {‘name‘:‘ac‘,1:‘i‘}

    d1.update(d)
    print(d1)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{‘name‘: ‘abc‘, 1: ‘id‘, ‘age‘: 18}

Process finished with exit code 0

集合set:

  特性:集合内的元素必须是唯一的,集合内的元素必须是可hash的,也就是不可变类型,集合是无序的

  定义集合:

  s = {‘abc‘,1,‘aaa‘,(1,2),‘name‘}

 集合的作用:

  1.去重    #因为集合的元素是唯一的所以可用于去除重复的元素.

  2.关系运算:

    python_s={‘egon‘,‘alex‘,‘abc‘,‘wang‘}
    linux_s={‘alex‘,‘abc‘,‘aaa‘,‘bbb‘}
    # 取共同部分:交集
    print(python_s & linux_s)
    #取老男孩所有报名学习的学生:并集
    print(python_s | linux_s)
    #取只报名了python课程的学生:差集
    print(python_s - linux_s)
    # 取只报名了linux课程的学生:差集
    print(linux_s - python_s)
    # 取没有同时报名python和linux课程的学:对称差集
    print(linux_s ^ python_s)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{‘abc‘, ‘alex‘}
{‘wang‘, ‘bbb‘, ‘abc‘, ‘aaa‘, ‘egon‘, ‘alex‘}
{‘egon‘, ‘wang‘}
{‘aaa‘, ‘bbb‘}
{‘aaa‘, ‘egon‘, ‘wang‘, ‘bbb‘}

Process finished with exit code 0

  集合的操作:

    关系运算
    python_s={‘egon‘,‘alex‘,‘abc‘,‘wang‘}
    linux_s={‘alex‘,‘abc‘,‘aaa‘,‘bbb‘}

    print(python_s.intersection(linux_s))  # 交集:python_s & linux_s
    print(python_s.union(linux_s))    #并集:|
    print(python_s.difference(linux_s))   #python_s-linux_s
    print(python_s.symmetric_difference(linux_s))  # 对称差集,python_s ^ linux_s

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{‘abc‘, ‘alex‘}
{‘wang‘, ‘egon‘, ‘abc‘, ‘alex‘, ‘bbb‘, ‘aaa‘}
{‘wang‘, ‘egon‘}
{‘bbb‘, ‘wang‘, ‘egon‘, ‘aaa‘}

Process finished with exit code 0

    s.difference_update():差集更新

    python_s={‘egon‘,‘alex‘,‘abc‘,‘wang‘}
    linux_s={‘alex‘,‘abc‘,‘aaa‘,‘bbb‘}

    python_s.difference_update(linux_s)
    print(python_s)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{‘wang‘, ‘egon‘}

Process finished with exit code 0

    s.update():更新,如果没有添加

    s1={‘a‘,1}
    s2={‘a‘,‘b‘,2}

    s1.update(s2)
    print(s1)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{1, 2, ‘b‘, ‘a‘}

Process finished with exit code 0

    s.add():添加一个元素

    s={‘a‘,1}
    s.add(‘abc‘)
    print(s)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{1, ‘a‘, ‘abc‘}

Process finished with exit code 0

    s.discard():删除一个指定的元素,删除不存在元素时不会报错

    s={‘a‘,1}
    s.discard(‘a‘)
    print(s)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{1}

Process finished with exit code 0

    s.remove():删除一个指定元素,删除不存在的元素时会报错

    s={‘a‘,1}
    s.remove(‘a‘)
    print(s)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
{1}

Process finished with exit code 0

    s.pop():随机删除一个元素

    s={‘a‘,2,3,4,5,6,7,8,9}
    print(s.pop())
    print(s)

D:\Python\Python36-32\python.exe E:/Python/tmp.py
a
{2, 3, 4, 5, 6, 7, 8, 9}

Process finished with exit code 0

    s.issubset():判断是否是子集

    s.issuperset():判断是否是父集

    s1={1,2,}
    s2={1,2,3}

    print(s1.issubset(s2))
    print(s2.issuperset(s1))

D:\Python\Python36-32\python.exe E:/Python/tmp.py
True
True

Process finished with exit code 0

    s.isdisjoint():没有交集返回True

    s1={‘a‘,‘b‘}
    s2={1,2,3}

    print(s1.isdisjoint(s2))

D:\Python\Python36-32\python.exe E:/Python/tmp.py
True

Process finished with exit code 0
时间: 2024-10-21 23:12:09

Python基础day-4[dict,set,bool]的相关文章

Python基础之字典dict(薄弱环节重点回顾,记不住打死自己)

字典是我Python基础里面学的最薄弱的环节,重新回顾,务必深入骨髓. Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,字典是另 一种可变容器模型,且可存储任意类型对象.具有极快的查找速度. 字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组.布尔值也可以,这种结构类型也称之为映射.字典类型是Python中唯一內建的映射类型. 重点就是字典的键必须是可以被哈希的,什么叫可以被哈希我说不上来,简单的说就是不可变对象. a=

python基础一整型、bool、字符串

1整型.bool.字符串 1.整型 --数字(int) ? 用于比较运算的 ? 32位 -2 ** 31 ~ 2 ** 31 -1 ? 64位 -2 ** 63 ~ 2 ** 63 -1 ? 基础运算符:+ - * / // ** % python2 整型 int -- log(长整型) / 获取的是整数 python3 整型 int -- / 获取的是浮点数(小数) 2.进制 ? 二进制 八进制 十进制 十六进制 ? 十进制与二进制转换: ? 十进制->二进制:除二整除取倒余法 ? 二进制->

python基础III(dict、set、函数)

什么是dict 我们已经知道,list 和 tuple 可以用来表示顺序集合,例如,班里同学的名字: ['Adam', 'Lisa', 'Bart'] 或者考试的成绩列表: [95, 85, 59] 但是,要根据名字找到对应的成绩,用两个 list 表示就不方便. 如果把名字和分数关联起来,组成类似的查找表: 'Adam' ==> 95 'Lisa' ==> 85 'Bart' ==> 59 给定一个名字,就可以直接查到分数. Python的 dict 就是专门干这件事的.用 dict 

python基础之字典dict

不可变数据类型:tuple.bool.int.str --可哈希类型可变数据类型:list.dict.set --不可哈希类型dict-key 必须是不可变数据类型,可哈希dict-value 任意数据类型dict 优点:二分查找.存储大量的关系型数据 特点:无序的-没有索引,只能按照键值对查找增:dict[key] = value dict.setdefault(key) dict.setdefault(key ,value)删:dict.pop(key) dict.pop(key,retur

Python 基础数据类型之dict

字典是另一种可变容器模型,且可存储任意类型对象.字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:d = {key1 : value1, key2 : value2 }键必须是唯一的,但值则不必.值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组. 1.字典的定义 dict1 = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} dict2 = {'

Python基础入门—字典dict

目录 字典 字典的定义 字典对象增加元素 字典对象元素删除 字典对象的修改 字典对象元素的查找 字典的深浅拷贝 字典 字典是一种可变数据类型 点典的元素存储方式是键值对的形式,键值对之间用逗号隔开 键值对的形式形如:key:value 最外层用{}括起来 d = {key1 : value1, key2 : value2 } 由于字典是键值对的形式,所以字典是无序的,自然不能切片和索引,而是通过键来取值 键:一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一 值:可以取任何数据类型

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

Python基础(三)

Python基础(三) 深浅拷贝 函数(全局与局部变量) 内置函数 文件处理 三元运算 lambda 表达式 递归(斐波那契数列) 冒泡排序 深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy #定义变量   数字.字符串 n1 = 123 #n1 = 'nick' print(id(n1))   #赋值 n2 = n1 print(id(n2))   #浅拷贝 n3 = copy.copy(n1) pri

Python基础(12)--模块

本文地址:http://www.cnblogs.com/archimedes/p/python-modules.html,转载请注明源地址. 模块简介 如果你退出 Python 解释器重新进入,以前创建的一切定义(变量和函数)就全部丢失了.因此,如果你想写一些长久保存的程序,最好使用一个文本编辑器来编写程序,把保存好的文件输入解释器.我们称之为创建一个脚本.程序变得更长一些了,你可能为了方便维护而把它分离成几个文件.你也可能想要在几个程序中都使用一个常用的函数,但是不想把它的定义复制到每一个程序

Python之路【第二篇】:Python基础

参考链接:老师 BLOG : http://www.cnblogs.com/wupeiqi/articles/4906230.html 入门拾遗 一.作用域 只要变量在内存中就能被调用!但是(函数的栈有点区别) 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 if 1==1: 2 name = 'tianshuai' 3 print name 所以下面的说法是不对的: 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result =