Python 解压序列、可迭代对象并赋值给多个变量
Python数据结构和类型
1.1 解压序列赋值给多个变量
现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量?
解决思路:先通过简单的解压赋值给多个变量,前提是变量的数量和序列元素的数量是一致的
下面是简单的代码
p = (1,2,3)
x,y,y = p
>>>x ---1
>>>y---2
>>>z---3
**代码实现1**
data = [ 'ABC',20,30.11,(16,28,99) ] # data中的元素有4个
name,share,price,hello = data # 赋值
>>>name
'ABC'
>>>share
20
>>>price
30.11
>>>date
(16,28,39)
**代码实现2**
data = [ 'ABC',20,30.11,(16,28,99) ]
name,share,price,(one,two,three)= data
>>>name
'ABC'
>>>one
16
>>>two
28
>>>three
99
如果变量个数和元素的个数不匹配,就会出现错误
>>>p = ( 4,5)
x,y,z = p #变量的个数超过元素的个数
ValueError: not enough values to unpack (expected 3, got 2)
这种解压赋值适合任何迭代对象,字符串,。。。。
>>> a,b,c,d,e = p
>>> a
'h'
>>> b
'e'
>>> c
'l'
>>> d
'l'
>>> e
'o'
>>>
如果想要解压一部分,丢弃其他值,只需要通过任意变量进行占位,最后将这些变量丢弃即可
data = [ 'ABC',20,30.11,(16,28,99) ]
_,share,price,_ = date
>>>share
20
>>>price
30.11
在测试中发现,输入丢弃变量的_的时候,显示的值是(16,28,99)
1.2 解压可迭代对象赋值给多个变量
** 问题**
如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError 。 那么怎样才能从这个可迭代对象中解压出N个元素出来?
解决方案
Python的星号表达式可以用来解决这个问题
http://blog.csdn.net/liuxingen/article/details/50113923
函数参数前面的星号(*)
Python 解压序列、可迭代对象并赋值给多个变量的更多相关文章
- python解压可迭代对象赋值给多个变量
如果一个可迭代对象的元素个数超过了变量的个数,会出现"解压值太多"的异常,python提供*号表达式(码夫破石的理解)来解决. 1,求一组平均值,就以类似学生成绩为例,要求是去掉第 ...
- Python数据结构和类型--解压序列赋值多个变量
Python数据结构和类型 1.1 解压序列赋值给多个变量 现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量? 解决思路:先通过简单的解压赋值给多个变量,前提是变量的数 ...
- python之解压序列并赋值给变量
N个数量的序列(可迭代对象),赋值给N个变量. 字符串: 1 #!usr/bin/env python3 2 # -*- Coding=utf-8 -*- 3 4 ''' 5 解压序列(或者任何可迭代 ...
- Python print命令/ 解压序列
Python 命令参数 print 命令 : #默认的print是有个 空格,和换行的 # print(sep= ' ') # print(end = '/n') a = 'sunjinchao' ...
- 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 ...
- Python全栈day20(解压序列)
补充:解压序列 需求一,不通过索引取一个列表的第一个元素和最后一个元素 需求二,交换两个变量的值 L=[1,2,3,4,5,6,7,8,9] #把列表第一个元素赋值给a,最后一个元素赋值给c #中间的 ...
- 解密for循环工作机制之迭代器,以及生成器、三元表达式与列表解析、解压序列
本节内容 1.迭代器协议与for循环 2.三元表达式 3.解压序列 4.列表解析 5.生成器 迭代器协议与for循环 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中下一项, ...
- python 解压 压缩包
转 http://m.blog.csdn.net/blog/wice110956/26597179# 这里讨论使用Python解压如下五种压缩文件: .gz .tar .tgz .zip .rar ...
- python解压压缩包的几种方法
这里讨论使用Python解压例如以下五种压缩文件: .gz .tar .tgz .zip .rar 简单介绍 gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. ...
随机推荐
- LeetCode: 557Reverse Words in a String III(easy)
题目: Given a string, you need to reverse the order of characters in each word within a sentence while ...
- 福建工程学院第十四届ACM程序设计大赛 - E - 外传:小晋逃生记
http://www.fjutacm.com/Contest.jsp?cid=705#P4 其实想清楚了就很简单,之前想了很多种方法,以为是二分什么的,看起来就像是一个单峰函数.但是发现直接暴力一波就 ...
- Java读入优化
之前被软院校赛卡了一波T,很亏啊.以下抄袭自Codeforces的神仙Petr. 可能得系统研究Java怎么写了?缺点是不能使用hasNext(),可能需要在main()中解决. import jav ...
- 使用Bootstrap实现表格列的显示与隐藏
来人,上效果图 走官方通道 1.引入样式文件(去github下载样式文件) <!--插件开--> <link rel="stylesheet" href=&quo ...
- (转载) 车牌识别EasyPR--开发详解
车牌识别EasyPR--开发详解 http://blog.csdn.net/liuuze5/article/details/46290455 源码GitHub:https://github.com/l ...
- ugui学习资料
官网文档 http://docs.unity3d.com/Manual/index.html 官网视频教程http://unity3d.com/learn/tutorials/modules/begi ...
- BAT或赌在当下或押在未来,谁是王者?
转自:http://www.tmtpost.com/97132.html 百度阿里和腾讯三家本来的核心业务并不冲突,各守一方阵地,但随着各自的收购注资加上业务的延展而慢慢有了交际,阿里和腾讯在移动支付 ...
- ADO学途 three day
1· 程序的根本----数据 一个程序是用来处理数据算法的具体表现,可以说没有数据,程序就没有意义.今天主 要分享在一个程序中数据的支持者SQL server的建立和使用.首先当然不可缺少SQL se ...
- STP-2-三个选择
1.选择根交换机 2.确定根端口 3.确定指定端口 1.选择根交换机 stp中只有一台交换机能成为根(Root),每台交换机按自己的STP逻辑,先发一个hello称自己为根,如果收到了比自 ...
- 在SpringBoot中用SpringAOP实现日志记录功能
背景: 我需要在一个SpringBoot的项目中的每个controller加入一个日志记录,记录关于请求的一些信息. 代码类似于: logger.info(request.getRequestUrl( ...