python中将列表赋值(python列表赋初值)

python中将列表赋值(python列表赋初值) 列表(list)是Python中一个非常重要的类型,用于管理一组数据,列表的形式如下所示

本文目录一览:

Python中的列表

列表(list)是Python中一个非常重要的类型,用于管理一组数据,列表的形式如下所示

country = [‘China’, ‘Germany’, ‘Russia’, ‘America’]

1)数据包含在引号中,Python中单引号和双引号具有相同的作用

2)使用逗号分隔数据,整个列表包含在一个中括号中

3)适用赋值操作符将一个列表赋值给一个变量名如上述例子中的“country”, Python的变量名不需要声明类型

country = []

列表不仅可以存放字符串这样的数据,还可以存放混合类型的数据,例如在列表中存储列表

除了列表外还可以存储字典和元组,字典和元组另作介绍

列表可以像数组那样通过下标获取列表中的数据,数据类型—字符串

列表可以适用冒号“:”操作符选取列表中的一部分数据,选取出的数据成为切片,实际上是字列表,但这些数据需要是连续的。

此外数据可以正向取如示例中的“0 : 2”得到列表[‘China’, ‘Germany’], 也可以反向取如“-2:-1”

需要注意的是即使切片只取一个数据得到的也是一个列表,而不是一个字符串,与使用索引得到的数据是不同的

添加数据可以使用 insert() 和 append() 两种方法,如下所示:

insert() 第一个参数确定插入的位置,在这个位置之后插入需要插入的数据, append() 将数据添加到列表的尾部

从列表中找出某个值第一个匹配项的索引位置

只能查找第一层数据,如果差列表中的列表,需要将列表全部输入。函数中的start和stop用于确定搜索范围

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

移除列表中某个值的第一个匹配项

反向列表中元素

对原列表进行排序

python中将列表赋值(python列表赋初值)

Python的赋值与复制

对于Python的初学者,在对象的使用过程中,由于对变量的赋值和对象的复制中的概念模糊,导致程序出错。

例如,下面的代码:

输出结果为:

a = [6,2,3,4,5],

b = [6,2,3,4,5],

c = [1,2,3,4,5]

a等于b?True

a等于c?True

a是b?True

a是c? False

可以看到,a,b, c所指向的对象的值都相同(a==b为True). a和b都是代表同一个对象(a is b为True)。当我们通过变量b对该列表进行修改时,由于a也指向该列表,所以当打印a,b时,我们得到相同的值。 而a和c则是代表不同的对象(a is c为False),所以修改b所指向得列表不会改变c梭子乡的列表的值.

在Python中,所有的变量都代表了对象,即便是简单的数字类型(int, float, bool),也是以对象的形式存在的。我们看下面的代码:

输出结果是:

a==b为True

a is b为True

可见,a, b都是指向同一个对象。接下来,进行下面的操作,

输出结果是:

a = 1, b = 2

a is b为False

与前面的列表不同,当我们对b做修改时,实际上是给b赋予了一个新生成的对象,对数值类型来说,所有的数值运算都会创建一个数值对象,并将这个对象指定给变量。因此,a与b指向了不同的对象,数值也不同。

再回过头来看列表对象,

我们知道,b是与a指向同一对象的变量,使用b对该对象进行修改,与使用a对该对象进行修改,效果是完全一样的。如果我们需要需要一个与a完全相同又与a相互独立的列表,那么就需要复制这个对象,也就是新建一个内容和源对象相同的对象。

对于列表来说,最简单的复制方法是通过下标索引的方式创建新的列表:

对于各种数据类型通用的对象拷贝复制,我们可以使用python内建的copy模块。

对于复杂对象(如嵌套列表)的复制,则需要注意区分浅拷贝和深拷贝。我们来看下面的代码:

得到的结果是:

a[0] is b[0]为 True

a[0] is c[0]为 False

a = [[-1, 2, 3], [4, 5, 6]]

b = [[-1, 2, 3], [7, 8, 9]]

c = [[1, 2, 3], [4, 5, 6]]

a[1] is b[1]为False

从上面的代码我们可以看到,copy函数为浅拷贝,只拷贝了对象的外层,而对象内部所包含的对象仍然指向原有的对象。而deepcopy则为深拷贝,对象内部的对象也进行了复制。

以上我们对变量的赋值和对象的复制做了更加深入的分析。在具体的使用中,我们需要根据具体来决定使用赋值、浅拷贝、深拷贝。

python 列表切片赋值

切片赋值,得到的与原变量无关,是两个不同的对象;直接赋值,引用的是同一个对象。

请看下例

1、直接赋值。

a=[0,2,3,0]

b=a

print b

del(a[1])

print b

这样写得到的结果是:

[0, 2, 3, 0]

[0, 3, 0]

2、切片赋值。

a=[0,2,3,0]

b=a[:]

print b

这样写得到的结果是

del(a[1])

print b

[0, 2, 3, 0]

[0, 2, 3, 0]

是不一样吧?

3、现对它们的id做一下输出就会发现问题所在;

(1)直接赋值得到的id是一样的:

[0, 2, 3, 0]

[0, 3, 0]

id(b): 83565448 id(a): 83565448

(2)切片赋值得到的id:

[0, 2, 3, 0]

[0, 2, 3, 0]

id(b): 83250504 id(a): 83250056

如何用python实现双列表同步赋值?

答:可以使用Python中的for循环进行列表的赋值,for循环的格式为:

for iterating_var in sequence:

statements(s)

对应代码如下所示。

其中一次的运行结果如下,满足题目要求。

Python中,列表list_one赋值给list_two,当list_one中元素发生变化时,为何list_two中相应元素也会改变?

list1 指向[456]的数组

list2 指向list1 等于也指向 [456]

那你list1改变的时候 原来那块内存变成了[453]

从List2看过去 当然也还是[453]

python赋值是什么?

Python中的赋值是一种语句,是将创建的一个数据对象,然后通过变量对这个值进行引用,变量即代表这个值,后面对这个数据的操作都通过这个变量来完成,这就是赋值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/23399.html

(0)
上一篇 2023-10-29
下一篇 2023-10-29

相关推荐

  • mysql删除索引的sql语句_mysql还原sql文件

    mysql删除索引的sql语句_mysql还原sql文件删除索引 删除索引可以使用ALTER TABLE或DROP INDEX语句来实现。DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下: 其中,在前面的两条语句中,都删除了

    2023-01-25
    45
  • 怎样优化oracle数据库,有几种方式_数据库设计的技巧

    怎样优化oracle数据库,有几种方式_数据库设计的技巧数据库之Oracle优化技巧(一) 1.where子句中的连接顺序 在Oracle数据库中,where子句的执行顺序是自下而上进行解析,根据这个原理,表之间的连接必须写在其他where条件之前,那些可

    2023-03-06
    42
  • 数据控制DCL「终于解决」

    数据控制DCL「终于解决」一、数据安全性 1.用户表示和鉴别 2.存取控制 3.定义视图 4.审计 5.数据加密 二、服务器级安全: 登入名(windows账号登入、账号密码登入) 默认登入账号:1.BUILTINAdmin

    2023-03-04
    46
  • MySQL-JDBC Loadbalance深入解析[亲测有效]

    MySQL-JDBC Loadbalance深入解析[亲测有效]背景说明公司的整个电商系统搭建在华为云上,根据老总的估计,上线3个月之后日订单量会达到百万级别,保守估计3个月之后总订单个数预计会有5千万。MySQL单表达到千万级别,就会出现明显的性能问题。根据如…

    2023-04-06
    56
  • 巨杉数据库公司怎么样_gartner数据库

    巨杉数据库公司怎么样_gartner数据库本文由巨杉数据库北美实验室资深数据库架构师撰写,主要介绍巨杉数据库的并发malloc实现与架构设计。原文为英文撰写,我们提供了中文译本在英文之后。 SequoiaDB Concurrent mall…

    2023-01-28
    48
  • 一篇文章带你玩转TiDB灾难恢复「建议收藏」

    一篇文章带你玩转TiDB灾难恢复「建议收藏」一篇文章带你玩转TiDB灾难恢复 一、背景 高可用是 TiDB 的另一大特点,TiDB/TiKV/PD 这三个组件都能容忍部分实例失效,不影响整个集群的可用性。下面分别说明这三个组件的可用性、单个实…

    2023-03-03
    56
  • Python中定义一个圆的用语

    Python中定义一个圆的用语在Python中,有一些基本的数学概念需要了解。首先,圆是一个几何图形,它由一组点构成,这些点与一个特定的点(圆心)之间的距离相等。半径是连接圆心和圆上的任何一个点的线段的长度。直径是连接圆上任意两点的线段的长度,其等于半径的两倍。周长是圆的周长,即圆周上的点到圆心的距离之和。

    2023-12-07
    0
  • 三种不同方式,让你的荣耀锐龙版笔记本轻松激活

    三种不同方式,让你的荣耀锐龙版笔记本轻松激活     荣耀作为近来大火的品牌,越来越多的朋友都用起了荣耀品牌的PC产品,而荣耀锐龙版笔记本毫无疑问的成为了办公人士的首选。但是一些对Linux系统或是Windows系统不满足而重装了其他系统的朋…

    2022-12-24
    47

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注