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结合起来就能够实现先打包,再压缩. ...
随机推荐
- Ubuntu 下编译libjingle-0.6.14 (转载)
转自:http://blog.csdn.net/feifei454498130/article/details/8197103 添加依赖库: sudo apt-get install build-es ...
- 算法学习--Day5
其实今天是第六天,不过昨天写的题目有些杂乱,都是贪心的算法,所以昨天的题目就不放上来了. 今天开始入手数据结构吧啦吧啦.. 数据结构当时学的时候感觉挺简单的,不过现在真正上代码之后发现情况并不妙,还是 ...
- Lightoj1037【状压DP】
题意: 给出n个怪的生命值,然后n个怪手里有一把枪,给出n*n的矩阵代表第i个怪对第j个怪的伤害值: 现在让你去干掉n个怪,只能平A使怪扣一滴血,干掉目标后, 可以把这个目标的武器拿进口袋然后用这个武 ...
- Unity亚洲开发者大会会议简录之技术篇,Profiler的一些参数的意思
2014Unity亚洲开发者大会会议简录之技术篇 拖公司的福,有幸去了一趟北京参加了一场Unity3D的交流盛宴,在为期两天的时间内,不仅有着技术上收获,也有心灵上的震撼.现在先来说说技术方面的一些比 ...
- 如何解决启动Error:com.intellij.util.indexing.StorageException问题?
启动tomcat时idea出现如下错误: Error:com.intellij.util.indexing.StorageException: com.intellij.util.indexing.S ...
- 自定义UIButton 实现图片和文字 之间距离和不同样式
喜欢交朋友的加:微信号 dwjluck2013 1.UIButton+ImageTitleSpace.h #import <UIKit/UIKit.h> // 定义一个枚举(包含了四种类型 ...
- python中的计时器:timeit模块
python中的计时器:timeit模块 (1) timeit - 通常在一段程序的前后都用上time.time()然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:ti ...
- MongoDB内置文档查看和修改
MongoDB设计的时候,有时候会设计内置文档,方便某个对象的统一.在这里略写了查看内置文档和更新内置文档. 1.查看 表为:realtimelogin realName为:123 realpa ...
- 如何 发布一个 arcgis 服务
1,打开arcgis, 加载一个图层 后然后如下操作
- Django中对单表的增删改查
之前的简单预习,重点在后面 方式一: # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象 book_obj=Book.objects.creat ...