Python学习笔记三——字典、集合、条件、循环语句

Python学习笔记三——字典、集合、条件、循环语句

字典

定义:

字典使用键-值(key-value)存储,具有极快的查找速度,dict是用空间来换取时间的一种方法。dict内部存放的顺序和key放入的顺序是没有关系的。dict根据key通过哈希算法来计算value的存储位置,key必须是唯一的且不可变的对象,如字符串、数字、元组等。

创建:

可以通过dict = {key1 : value1, key2 : value2 }形式创建字典,向字典添加新内容的方法是增加新的键-值对,修改或删除已有键-值对。

方法:

  1. 通过in判断key是否存在
  2. 通过get()方法返回指定键的值,如果key不存在,可以返回None,或者自己指定的value
  3. str(dict)输出字典,以可打印的字符串表示。
  4. 删除字典
    (1).pop(key),删除字典给定键 key 所对应的值,返回值为被删除的值;
    (2).删除键 'Name'del dict['Name']
    (3).清空字典:dict.clear()
    (4).删除字典:del dict
  5. 其他方法:
函数 描述
dict.copy() 返回一个字典的浅复制
dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.items() 以列表返回可遍历的(键, 值) 元组数组,在遍历字典时,关键字和对应的值可以使用 items() 方法同时解读出来
dict.keys() 返回一个迭代器,可以使用 list() 来转换为列表
dict.values() 返回一个迭代器,可以使用 list() 来转换为列表
dict.setdefault(key, default=None) get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2) 把字典dict2的键/值对更新到dict里
popitem() 随机返回并删除字典中的一对键和值(一般删除末尾键-值对)

集合

特性:

集合(set)是一个无序的不重复元素序列。setdict类似,也是一组key的集合,但不存储value。在set中,没有重复的key,同样也不可以放入可变对象。

创建:

使用parame = {value01,value02,...}或者set(value)创建集合,使用set()创建空集合。支持集合的&|-^操作。

方法:

  1. 通过add(key)方法或update(key)可以添加元素到set中,其中update()参数可以是列表,字典等不可哈希的元素:
    this_set = set(("Google", "Runoob", "Taobao"))
    this_set.update({1,3})
    this_set.update([1,4],[5,6])
    print(this_set)
    
    输出:{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
  2. 删除集合
    (1).通过remove(key)方法可以删除元素,如果元素不存在,则会发生错误;
    (2).通过discard(key)移除集合中的元素,如果元素不存在,不会发生错误;
    (3).pop()随机删除集合中的一个元素,交互模式下pop()是删除排序后集合的第一个元素;
    (4).clear()清空集合。

判断语句

多条件判断:

if <条件判断1>:
	<执行1>
elif <条件判断2>:
	<执行2>
elif <条件判断3>:
	<执行3>
else:
	<执行4>

如下,大于等于18岁输出adult,[6,18)岁输出teenager,小于6岁输出kid:

if age >= 18:
	print('adult')
elif age >= 6:
	print('teenager')
else:
	print('kid')

三目表达式:

为真时的结果 if 判定条件 else 为假时的结果'True' if condition else 'False'

循环语句

  1. for循环
    for x in ...循环就是把每个元素代入变量x,然后执行缩进块的循环语句。range()函数,可以生成一个整数序列,再通过list()函数可以转换为list,如:list(range(5))输出[0, 1, 2, 3, 4]

    可以结合range()len()函数以遍历一个序列的索引:

    for i in range(len(list)):
    	print(i, list[i])
    
  2. while循环
    计算100以内所有奇数之和:

    sum = 0
    n = 99
    while n > 0:
    	sum = sum + n
    	n = n - 2
    print(sum)
    

    while … else 在条件语句为 false 时执行 else 的语句块,但循环被break终止时不执行,如下判断是否为质数的代码:

    for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')
    
  3. break语句可以提前退出循环;continue语句,跳过当前的这次循环,直接开始下一次循环。

猜你喜欢

转载自blog.csdn.net/m0_38010011/article/details/88070317