序列的+、+=、extend、append理解

列表 + 元组:

1 >>> a = [1, 2]
2 >>> b = (3, 4)
3 >>> a = a + b
4 Traceback (most recent call last):
5   File "<stdin>", line 1, in <module>
6 TypeError: can only concatenate list (not "tuple") to list

列表 += 元组:

1 >>> a += b
2 >>> a
3 [1, 2, 3, 4]

原因:‘ += ’是调用 iadd()函数,然后调用extend函数,extend函数会遍历序列元素再依次加入:

def __iadd__(self, values):
      self.extend(values)
      return self

def extend(self, values):
    ‘S.extend(iterable) -- extend sequence by appending elements from the iterable‘
    for v in values:
        self.append(v)

append()始终将加入的元素作为整体加入:

1 >>> a
2 [1, 2, 3, 4]
3 >>> a.append((5, 6))
4 >>> a
5 [1, 2, 3, 4, (5, 6)]

原文地址:https://www.cnblogs.com/icekx/p/9178896.html

时间: 2024-07-30 08:52:08

序列的+、+=、extend、append理解的相关文章

图片放大功能插件及jquery.extend函数理解

前端时间,产品提出社区评论中的图片需要有放大功能.感觉可以共用,所以就想整合一个插件,过程中也借鉴了一些例子. 分析下自己的代码思路: var scaleImg = function(opts) { this.opts = $.extend({ wrap: '', clickimgs: '', callback: function(){} }, opts); this.images_n = []; //保存一条评论中的所有图片 this.$showArrow = false; //显示左右翻页按

python的append insert extend pop del remove使用

对于 python 数组的操作,有插入和删除,下面介绍各个函数的功能: 插入 插入的函数有 append.insert .extend append append(i) 是在数组的末尾插入一个元素 i ,如下代码为在数组 array 的末尾插入元素 10: array = [1, 2, 3, 4, 5, 6, 7, 8, 9] array.append(10) print array # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] insert insert(i, j) 是在

理解分布式一致性与Raft算法

理解分布式一致性与Raft算法 永远绕不开的CAP定理 出于可用性及负载方面考虑,一个分布式系统中数据必然不会只存在于一台机器,一致性简单地说就是分布式系统中的各个部分保持数据一致 但让数据保持一致往往并不像看上去那么简单,假设我们有两台机器A与B,这时A更新了数据,A需要将更新的指令同步到B,如果A到B网络传输到B数据落地的总时间为500ms,那么这个500ms就是可能造成数据不一致的时间窗口,假如两台机器分属不同机房,甚至分属不同国家的机房,其时间窗口会更大,具体会造成什么影响呢? 举个栗子

UML之序列图(Sequence Diagram)

类图描述的是类之间的静态关系,而序列图展示的是对象之间的沟通方法,描述运行时的交互关系. OOP编程语言里面合理的直接交互方式只有一种,方法调用(Event通讯是间接的).所以序列图也可以 理解为方法调用交互图.方法调用有四个元素,参与者(两个,调用者和被调用者),方法名称,输入 和输出. 参与者 参与者用一个Lifeline来表示,图像为一个矩形外加底部的一条竖线.矩形里面显示对象名,格式为 name:ClassType的样式,都为可选项,Martin Fowler推荐a Handler的格式

理解题意后的UVa340

之前理解题意错误,应该是每一次game,只输入一组答案序列,输入多组测试序列,而之前的错误理解是每一次输入都对应一组答案序列和一组测试序列,下面是理解题意后的代码,但是还是WA,待修改 #include<stdio.h> #define maxn 1010 int main() { int num,a[maxn],i,j,b[maxn]; int sum=0; while(scanf("%d",&num)!=EOF&&num) { ++sum; pr

数据结构和算法之栈和队列二:栈的压入,弹出序列

当时我在学习这个的时候也是非常不理解这个问题,一个栈的压入和弹出序列的判断一看不就知道了么,还去判断干嘛.只要符合后进先出的规则就行.但是我在这里简单说一下这个压入和弹出序列是怎么回事.就是我们给定假设的两个序列,一个为压入序列,一个为弹出序列.然后我们再通过一个辅助的栈,把压入序列的数据一个一个push()进入临时的辅助栈中,如果栈顶元素刚好和弹出序列的数据一样,那么我们就弹出,如果不一样我们就将压入序列的数据继续压入临时栈中,直到到达序列结束.如果压入序列结束,临时栈全部数据弹出那么就是一个

条件随机场(CRF)的理解

Motivation 学习CRF的过程中,我发现很多资料,教程上来就给一堆公式,并不知道这些公式是怎么用的. 所以我想以面向问题的形式,分享一下自己对CRF用于序列标注问题的理解 问题定义 应该注意以下几点: 输入\(x\)是观测序列,是先验条件 输出\(Y\)是标注序列,也称为状态序列 我们举个例子:(<统计学习方法> 例11.1) 设有一标注问题:输入观测序列为\(X=(X_1,X_2,X_3)\),输出标记序列为\(Y=(Y_1,Y_2,Y_3)\),\(Y_1,Y_2,Y_3\)取值于

[bzoj1430]小猴打架_prufer序列

小猴打架 bzoj-1430 题目大意:题目链接. 注释:略. 想法: 我们发现打架的情况就是一棵树. 我们只需要把确定树的形态然后乘以$(n-1)!$表示生成这棵树时边的顺序. 一共$n$个节点我们发现数的形态一共有$n^{n-2}$种. 所以答案就是$n^{n-2}\cdot (n-1)!$. Code: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm&g

Python笔记与习题(1)

目录 一.Python 介绍       1.1 Python 定义       1.2 Python 历史       1.3 Python 特性       1.4 python 解释器的几种实现版本       1.5 Python 编程的基本方式二.Python 开发环境       2.1 搭建Python 开发环境       2.1.1 官网地址       2.1.2 Python 运行环境的安装与配置       2.1.3 交互式开发环境       2.1.4 setupt