Loading... ## 切片 python 左边取得到,右边取不到的切片方式,让我们很容易的用一个下标把序列分成不重复的两部分 a[:x],a[x:] #### 你可以对切片进行命名, 这样增加了代码的可读性,也进一步减少了注释量。。。 NAME=slice(0:5) AGE=slice(5:7) mylist[NAME],mylist[AGE] #### 切片的省略... 这通常在numpy中使用,对于多维切片来说a[i:...],如果a是一个四维,那么表示a[i, :, :, :] #### 给切片进行赋值,表达式左边一定是一个序列 mylist[2:5]=[100] ## 字典 我们经常统计词出现的次数,而当我们要储存每个词出现的位置时候,我们通常采用以下的形式 {'a':[(0,1),(1,1)]} 表示a这个单词出现在第一句的第一个位置,以及第二句的第二个位置 我们会采用以下逻辑,前后省去了部分代码 l=d.get(word,[]) 这里做一次查询,如果没有就返回[],一个列表 l.append(position) d[word]=l 这是第二次查询。 所以,不管现阶段的你怎样,至少要做两次查询。 ```python if word not in d: d[word]=[] d[word].append(p) if word not in d: d[word]=[p] else: d[word].append(p) ``` 通过使用setdefault,我们就可以使用一次查询 d.setdefault(word.[]).append(p) 需要注意d.setdefault(word.[])返回了这个列表对象,所以直接追加append。 ## 拆包 我们可以使用*来处理拆包剩下的元素 *只能用在一个变量名前面(比如rest),却可以出现在任何位置 a,b,*rest=range(5) 此时rest为[2,3,4] *rest,a,b=range(5) 此时rest为[0,1,2] 中间同理 Last modification:April 5, 2023 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 如果觉得我的内容对你有用,请随意赞赏