文章目录

  • 一、什么是赋值
  • 二、赋值类型
    • 1. 序列赋值
    • 2. 多目标赋值
    • 3. 增强赋值语句

一、什么是赋值

python的赋值是通过“=” 将右边的对象赋值给左边的变量,如:

a = 'test'        #将字符串赋值给变量a
a = 123            #将数值赋值给变脸a
a = [1,2,3]        #将列表赋值给变量a

通过上面的赋值测试,我们会发现变量a是没有类型的,而类型的区别只存在于右侧的对象中。故可以将各种类型的对象赋值给变量。在Python内部,对于赋值的实现,本质上是建立将变量指向对象的引用过程,并不是将对象进行复制的过程。赋值过程有以下三个特点:

  1. 赋值的过程是建立变量到对象的引用的过程
  2. 变量在首次赋值时被创建
  3. 变量在引用前必须先赋值

二、赋值类型

1. 序列赋值

python将=右侧序列的值依次和左侧的序列中的变量相互对应匹配,给每一个变量赋值,如:

a,b,c = [1,2,3]
a,b,c=(1,2,3)
(a,b,c)=1,2,3
(a,b,c)=[1,2,3]
a,b,c=1,2,3
*a,b = 1,2,3   #首先满足非*的变量,剩下的通过列表复制给待*的变量,如果没有剩下的值,那么列表为空。其典型应用详见小技巧4.

所谓序列赋值,指元组、列表这样的序列可以一次性对序列长度相等的变量进行赋值。数值必须相等。如下面的就要报错:

a,b=1,2,3
ValueError: too many values to unpack (expected 2)

不仅仅是元组或列表,只要对象切好是可迭代的,那么就可以执行分解操作,如分解字符串、字典:

a,b,c,d,e = 'hello'dct = {'a':1, 'b':2, 'c':3}
a,b,c = dct        #只是将字典中的key 复制给a,b,c

小技巧1:交换两变量的值:

a = 1
b = 1
a,b =b,a       #完成a,b值的交换

小技巧2:依次给变量赋值n个整数

a,b,c,d,e,f = range(6)

小技巧3:如果=两边长度不相等怎么处理呢?处理如下:
给需要单独处理的变量前加上*,此时在赋值时如果不能对应,那么就会通过将一个列表赋值给该变量,列表中的内容为按序多出来的对象或者空列表

a,b,c=1,2,3,4       #会报错
a,b,*c=1,2,3,4             #c为[3,4],a,b正常赋值
a,*b,c=1,2,3,4             #b为[2,3],a,c正常赋值
*a,b,c=1,2,3,4             #a为[1,2],b,c正常赋值
a,b,c,d,*e=1,2,3,4         #e将得到一个空列表

小技巧4:递归求和

P = [1, 10, 7, 4, 5, 9]         #求列表P中个元素之和     def sum_p(items):head, *tail = itemsreturn head + sum(tail) if tail else headsum_p(P) #output: 36

2. 多目标赋值

就是对多个变量直接赋予一个初始值,如在程序开始前给多个计数器变量赋值为0:

a=b=c=d=e=0

此种方式赋值需要注意列表的可变性。

3. 增强赋值语句

截图如下了:
解释一个例子,其他都类似:

X += Y 本质是 X = X + Y,先求X+Y的和,再将其赋值给X

Python变量赋值方法相关推荐

  1. python变量赋值如何定义操作

    python变量赋值如何定义操作 变量定义方法很简单: x = 5 这个操作过程就是赋值,意思把整型数字5赋值给了变量x,用等号来连接变量名和值.之后就可以在表达式中使用这个新变量了. x * 3 1 ...

  2. python变量赋值

    赋值 python变量赋值传递的都是引用,变量赋新对象相当于将当前变量名的标签从原变量上撕下来,贴到新的对象上. a = [1, 2] b = a 此时a = [1, 2] , b = [1, 2] ...

  3. python变量赋值及其数据类型

    1.Python变量赋值 Python 中的变量赋值不需要类型声明. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. Pyth ...

  4. python 变量赋值是引用和拷贝_Python 中变量赋值传递时的引用和拷贝

    曾经看到这样一个问题,一个字典中的元素是列表,将这个列表元素赋值给一个变量,然后修改这个列表中元素的值,结果发现,字典中那个列表也同样修改了.那个问题如下: dict = {'a':[1,2,3,4, ...

  5. python变量赋值方式_python变量和变量赋值的几种形式

    动态类型的语言 python是动态类型的语言,不需要声明变量的类型. 实际上,python中的变量仅仅只是用来保存一个数据对象的地址.无论是什么数据对象,在内存中创建好数据对象之后,都只是把它的地址保 ...

  6. Python 变量赋值和命名规则

    一.变量赋值 (1) 赋值操作符 Python语言中,等号(=)是主要的复制操作符(其他的是增量赋值操作符). >>> anInt = 2015 >>> aStri ...

  7. Python变量赋值的秘密

    在Python中,我们令一个变量等于另外一个变量时,并不是把值传递给它,而是直接把指向的地址更改了.我们想要查看一个变量在内存中的地址,可以通过id(变量) 来查看.我们通过一个小例子来看看这个有趣的 ...

  8. Python 变量赋值

    1.单个变量进行赋值 示例: #!/usr/bin/python # -*- coding: UTF-8 -*- # 整型变量 counter = 100 print counter; # 浮点型变量 ...

  9. python变量赋值方式_python中变量的命令规制及变量的赋值方式

    文章结构: 一.python中变量的命名规则 二.变量赋值的三种方式 三.python的垃圾回收机制 一.Python中变量的命令规则 变量名只能包含字母.数字和下划线,且不能以数字开头: 变量名不能 ...

最新文章

  1. 优达同学波士顿房价预测
  2. 走在WCF学习的路上---印在脑子里的点点滴滴(两种元数据交换方式的优缺点)...
  3. 水星usb无线网卡linux驱动下载,水星USB无线网卡mw150us苹果macOS系统驱动成功
  4. PHP fuser,打印机提示 50.1 fuser error 这样的错误,无法正常打印?
  5. 微信开发者工具 the permission value is offline verifying 异常
  6. 解决eccube お名前.com服务器 各种请求链接 https 不生效
  7. Python+Selenium自动化测试——126邮箱自动登录脚本(登录首页是二维码,切入账号密码输入框)
  8. python爬虫之scrapy初试与抓取链家成交房产记录
  9. epoll详解【epoll_create】【epoll_ctl】【epoll_wait】
  10. 谷歌学术403:某URL没有权限访问
  11. STM32 PC13 PC14 PC15用作普通IO口
  12. Access 密码破解原理- -
  13. 【IT】计算机体系结构
  14. 如何记录文件服务器上的文件操作日志
  15. 服务器cpu支持4通道什么意思,Intel 10nm服务器CPU曝光 LGA4189接口、八通道内存
  16. 多旅行商问题:鹈鹕优化算法(Pelican Optimization Algorithm,POA)求解多仓库多旅行商问题(提供Matlab代码)
  17. Redis 缓存穿透、击穿、雪崩 解决方法
  18. 咸鱼看书之《射频与微波电子学》(3:电路学数学基础之:相量)
  19. gocad2017 安装出现 error -103,577
  20. Unity FFT海水渲染效果展示

热门文章

  1. tesseract的使用
  2. 栈的压入、弹出序列和栈所有可能的弹出顺序
  3. 网络诊断工具之—IP连接测试ping命令
  4. python爬网易云_python爬网易云音乐-知了汇智
  5. ubuntu 强制关闭程序或窗口方法
  6. 视频倍速调整(ffmpeg)
  7. Highmaps 经纬度转换为svg图上坐标
  8. SpringBoot 入门
  9. JAVA定义一个树形的结构_Java自定义树形结构
  10. vue页面详情页返回列表页_vue 详情页返回列表页,保留列表页之前的筛选条件...