Python数据结构和类型

1.1 解压序列赋值给多个变量

现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量?

解决思路:先通过简单的解压赋值给多个变量,前提是变量的数量和序列元素的数量是一致的

下面是简单的代码

  1. p = (1,2,3) # 这里的p是一个元组tuple
  2. x,y,y = p
  3. >>>x ---1
  4. >>>y---2
  5. >>>z---3
  6. **代码实现1**
  7. data = [ 'ABC',20,30.11,(16,28,99) ] # data中的元素有4个
  8. name,share,price,hello = data # 赋值
  9. >>>name
  10. 'ABC'
  11. >>>share
  12. 20
  13. >>>price
  14. 30.11
  15. >>>date
  16. (16,28,39)
  17. **代码实现2**
  18. data = [ 'ABC',20,30.11,(16,28,99) ]
  19. name,share,price,(one,two,three)= data
  20. >>>name
  21. 'ABC'
  22. >>>one
  23. 16
  24. >>>two
  25. 28
  26. >>>three
  27. 99

如果变量个数和元素的个数不匹配,就会出现错误


  1. >>>p = ( 4,5)
  2. x,y,z = p #变量的个数超过元素的个数
  3. ValueError: not enough values to unpack (expected 3, got 2)

这种解压赋值适合任何迭代对象,字符串,。。。。

  1. >>> a,b,c,d,e = p
  2. >>> a
  3. 'h'
  4. >>> b
  5. 'e'
  6. >>> c
  7. 'l'
  8. >>> d
  9. 'l'
  10. >>> e
  11. 'o'
  12. >>>

如果想要解压一部分,丢弃其他值,只需要通过任意变量进行占位,最后将这些变量丢弃即可

  1. data = [ 'ABC',20,30.11,(16,28,99) ]
  2. _,share,price,_ = data
  3. >>>share
  4. 20
  5. >>>price
  6. 30.11

在测试中发现,输入丢弃变量的* _ *的时候,显示的值是(16,28,99),这里的原理不清楚,

经过园有的评论知道,_ 已经被最后一个值(16,28,99) 重新赋值了

1.2 解压可迭代对象赋值给多个变量

Python数据结构和类型--解压序列赋值多个变量的更多相关文章

  1. Chapter One:数据结构和算法-解压序列赋值给多个变量

    一.问题: 现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量? 二.解决方案: 代码示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...

  2. Python 解压序列、可迭代对象并赋值给多个变量

    Python数据结构和类型 1.1 解压序列赋值给多个变量 现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量? 解决思路:先通过简单的解压赋值给多个变量,前提是变量的数 ...

  3. python之解压序列并赋值给变量

    N个数量的序列(可迭代对象),赋值给N个变量. 字符串: 1 #!usr/bin/env python3 2 # -*- Coding=utf-8 -*- 3 4 ''' 5 解压序列(或者任何可迭代 ...

  4. Python基础(解压序列)

    解压序列: a,b=(1,2) # a,b=[1,2] print(a,b) #输出结果:1 2 #获取第一个值和最后一个值 a,*_,c=(1,2,3,4,5,6,7,8,9) print(a) p ...

  5. Python全栈day20(解压序列)

    补充:解压序列 需求一,不通过索引取一个列表的第一个元素和最后一个元素 需求二,交换两个变量的值 L=[1,2,3,4,5,6,7,8,9] #把列表第一个元素赋值给a,最后一个元素赋值给c #中间的 ...

  6. Python print命令/ 解压序列

    Python 命令参数  print 命令 : #默认的print是有个 空格,和换行的 # print(sep= ' ') # print(end = '/n') a = 'sunjinchao' ...

  7. 解密for循环工作机制之迭代器,以及生成器、三元表达式与列表解析、解压序列

    本节内容 1.迭代器协议与for循环 2.三元表达式 3.解压序列 4.列表解析 5.生成器 迭代器协议与for循环 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中下一项, ...

  8. Python对文件的解压和压缩

    zipfile: 解压: import os, zipfile serverzip_path = 'D:\\server.zip' serverzip_target_path = 'd:\\2' f ...

  9. python利用7z批量解压rar

    一开始我使用了rarfile这个库,奈何对于含有密码的压缩包支持不好,在linux上不抛出异常:之后有又尝试了unrar..比rarfile还费劲.. 所以用了调用系统命令的方法,用7z来解压 通过a ...

随机推荐

  1. QDUOJ LC的课后辅导 单调递增栈

    LC的课后辅导 发布时间: 2015年9月19日 21:42   时间限制: 1000ms   内存限制: 256M 描述 有一天,LC给我们出了一道题,如图: 这个图形从左到右由若干个 宽为1 高不 ...

  2. JQuery点击table获取点击行的数据

    $(function () {var TaskType = '';$("#data_table tr:gt(0)").click(function () { TaskType = ...

  3. 零基础配置Linux服务器环境

    详细步骤请走官方通道 over!over!over!

  4. css div平移淡入淡出

    <!DOCTYPE html> <html> <head> <style> div { width:100px; height:100px; backg ...

  5. [Xcode 实际操作]一、博主领进门-(6)Xcode的iOS模拟器的基本使用方法

    目录:[Swift]Xcode实际操作 本文将演示Xcode的iOS模拟器的基本使用方法. 在项目导航区,鼠标右键[Assets.xcassets]资源文件夹. 隔壁右侧区域左下角点击[+],打开资源 ...

  6. Java 分析工具汇总

    http://blog.csdn.net/fenglibing/article/details/6411999 jps  jps -mlvV jmap jmap -heap <pid>   ...

  7. UVA11292(排序贪心)

    笔者休息娱乐. ; int n, m, a; ll solve(int n, int m) { ll ans = ; priority_queue<int, vector<int>, ...

  8. java线性表之顺序表实现

    仿照arrayList写了一个简化版的线性表,主要为了用来研究arrayList在实现什么操作的情况下比较节省性能,楼主文采很差,直接上代码. import java.util.Arrays; pub ...

  9. keil_rtx特点

    Keil RTX是一个专为ARM及Cortex M系列处理器开发的无版税的确定的实时操作系统.它允许工程师建立多任务同步并行的程序软件,同时也能帮助使程序代码更加结构化和便于维护.   产品亮点 所有 ...

  10. python学习之高级特性:

    切片:对列表.元组.字符串.字典取中间的一部分,在C中一般是通过for循环拷贝/memcpy/strcat等操作.而python提供了更方便的切片操作符[m:n]:前闭后开,如果从0取m可以省略:如果 ...