2020-08-09 Python 回顾基础篇2

基础语法

列表与字典

计算机使用数据可以划分为三种:

  1. 直接使用,即直接输入输出数据。
  2. 加工数据,即进行数据的运算或者其他操作。
  3. 数据判断,即之前使用if 语句进行判断时,利用了数据之间的逻辑进行判断。

列表

之前总结过的整数,浮点数,字符串类型数据的赋值,一次只能存储一条数据,在处理大批数据时会有所不便,而列表和字典的存在就是帮助存储大量数据,让计算机批量处理。
list = [item1,item2,item3,…]

定义与构建

与其他编程序语言类似,列表使用中括号[]进行修饰,每一个元素之间使用逗号,隔开。
Lists are constructed with square brackets, separating items with commas: [a, b, c].
Python3描述list
此为官方文档描述的4种构建list的方法,下面依次使用代码描述

emptyList = []
generalList = [1,2,3,'a','b','c']
listComprehension = [i for i in range(10)]
listConstructor = list(range(1,10,2))

构建方法结果
注意使用list comprehension (列表推导式)创建的list 语法具体如下:
new_list = [expresion_for_member for member in iterable if condition]
其中expression_for_member 可与member相同,也可为member的推导式,例如x2,xx 等。
condition可以用来筛选放入列表的元素,扩展的话可以生成交集、差集等。

列表取值与切片

ok,list的生成大概是这些,下面来看取元素,传统的取列表元素的方法,通过各个元素的偏移量(from 0 to len(list)-1,为负数时+len(list)即可)来进行元素定位。

generalList[1]
generalList[-3]

list元素定位
明显index 为1为正数时,取第二个元素2,index为-3为负数时,-3+6=3,取第四个元素’a’。
取多个元素时需要用到切片 :。
list[i:j]
左取右不取,左右空,取到头。
样例

列表增删

list.append(item) item为单一元素,可以为简单类型int,float,str或者符合类型dict,list,tuple…
list.insert(i,item)在i位置前插入x
list.extend(another list) 与append()区别是此方法将两个list(iterable)拼接到一起。
del list[index] 来删除对应序号的元素
list.remove(item)删除对应的元素
增删代码展示
其中del list[]也可切片删除
切片删除
当然作为序列类型的一种(Mutable Sequence Type),list自然也可以也拥有Common Sequence Type的operations。
在这里插入图片描述
这里简单把文档的内容贴上来,解释可以查看只解释倒数第二个s.index()的用法,此处的[]内容是可选参数,不多说,上代码。
list.index()
最后一行list1.index(3,3,6)搜索了子序列4,5,2,没有找到3,返回ValueError.
可变序列
作为可变序列,list也有自己独有的operations。
注意点1:序列类型顾名思义为有序的类型。
注意点2:基础序列类型(Basic Sequence Type)为list,range 和 tuple,其中list为可变序列,range和tuple为不可变序列。

字典

字典不属于序列,数据存储为无序。

定义与构建

字典故名思意为一个映射类型(Mapping Type)的数据。包含相对应的key与value。构建一个字典可以通过直接输入键值对(k-v)或者使用dict构造器来进行。
直接引用文档中的例子。
字典的构建
构建出的字典:{‘one’: 1, ‘two’: 2, ‘three’: 3}
其中前一个变量one,two,three为key值有唯一性,一个字典中不能出现相同的键值,后声明的键值对会替换前面相同键的键值对。

字典取值

由于字典是无序的,所以不能通过偏移量来取值,需要使用键。
在这里插入图片描述
或者使用循环结构输出字典值。
循环输出
注意点1:for key in a: 为for key in a.keys()的简写。
注意点2:a.values(),a.items(),a.keys()返回一个iterable的对象,供for循环使用。

字典增删

与list类似,删除使用del dict[key],增加则使用dict[key]=value,可以直接使用dict[key]=newValue来修改value的值。
修改value的值
那么细心的小伙伴已经发现了,这样好像只能修改value的值啊,没有修改key值,这里我提出三个方法。

  1. 最简单的方法先将原key值对应的value与新键对应并加入字典,再删除掉原来的键值对。
    方法1
  2. 引入dict.pop(key)方法,此方法会删除对应key的键值对,返回value。
    方法2
  3. 结合使用dict.pop(key)和dict.update()方法。
    关于此方法我钻入了一个牛角尖,虽然知道dict.update()后的参数一般使用dict,但是我看到了文档上关于此方法的描述:
    dict.update()
    十分想用tuple来进行更新,结果失败了很多次,后来查看tuple的定义发现:决定一个tuple的不是小括号()而是逗号,。最终成功了,和大家分享一下心得。
    在这里插入图片描述
    注意存粹使用tuple进行update时,如果不加后面那个逗号,方法会将其识别为两个str,毕竟str也是iterable,如果有逗号,那么会将(‘ONE’,a.pop(‘one’))整个看做一个元组,且长度为2,所以在遇到这种情况后最好还是在元组外使用方括号[]进行修饰,避免出错。
    在这里插入图片描述
    最简单当然还是直接使用字典或者改为
    在这里插入图片描述
    此时直接传关键字参数,不需要加“”。

写这篇博客也帮我重新回顾了知识,并且找到了很多以前忽略的点,希望能够让读者有所收获。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值