使用Python将数组的元素导出到变量中(unpacking)
解决的问题
需要将数组(list)或元组(tuple)中的元素导出到N个变量中。
解决的方案
任何序列都可以通过简单的变量赋值方式将其元素分配到对应的变量中,唯一的要求就是变量的数量和结构需要和序列中的结构完全一致。
p = (1, 2) x, y = p # x = 1 # y = 2 data = ['google', 100.1, (2016, 5, 31)] name, price, date = data # name = 'google' # price = 100.1 # date = (2016, 5, 31) name, price, (year, month, day) = data # name = 'google' # price = 100.1 # year = 2016 # month = 5 # day = 31
如果变量结构和元素结构不一致,你将会遇到以下错误:
p = (1, 2) x, y, z = p Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> x, y, z = p ValueError: not enough values to unpack (expected 3, got 2)
其实这样的操作不限于元组和数组,在字符串中也是可以用的。Unpacking支持大多数我们常见的序列,比如文件迭代,各种生成器等等。
s = 'Hello' a,b,c,d,e = s # a = 'H' # b = 'e'
如果导出过程中你想丢掉一些元素,其实Python并不支持这样的语法,不过你可以指定一些不常用的变量来达到你的目的。
data = ['google', 100.1, (2016, 5, 31)] name, _, (_,month,_) = data # name = 'google' # month = '5' # other fileds will be discarded
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
python实现数组插入新元素的方法
本文实例讲述了python实现数组插入新元素的方法.分享给大家供大家参考.具体如下: li=['a', 'b'] li.insert(0,"c") 输出为:['c', 'a', 'b'] li=['a', 'b'] li.insert(-1,"c") 输出为:[ 'a','c', 'b'] 希望本文所述对大家的Python程序设计有所帮助.
-
python简单获取数组元素个数的方法
本文实例讲述了python简单获取数组元素个数的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: mySeq = [1,2,3,4,5] print len(mySeq) 运行结果如下: 5 希望本文所述对大家的Python程序设计有所帮助.
-
Python交换变量
如: 复制代码 代码如下: a, b, c = b, c, a 来个复杂一点的例子,再来一顿家喻户晓的"冒泡排序"吧: 复制代码 代码如下: array = [1, 2, 5, 3, 6, 8, 4] for i in range(len(array) - 1, 1, -1): for j in range(0, i): if array[j] > array[j + 1]: array[j], array[j + 1] = array[j + 1], array[j] prin
-
Python中变量交换的例子
Python追求简洁,诞生不少运算赋值规则,力求从简,其中就包括两个或者多个变量交换值. 普通语言中 复制代码 代码如下: # 声明变量 a=50 b=10 # 开始交换,先把其中一个值赋给临时变量,然后才能实现交换变量. tmp = a a = b b = tmp 在Python中,实现两个变量值交换非常方便 复制代码 代码如下: # 声明变量 a=50 b=10 # 开始交换变量 a,b = b,a 甚至可以多个变量同时交换 复制代码 代码如下: a=50 b=10 c=20 c,b,a =
-
Python实现变量数值交换及判断数组是否含有某个元素的方法
本文实例讲述了Python实现变量数值交换及判断数组是否含有某个元素的方法.分享给大家供大家参考,具体如下: 本来,这两个问题都属于的编程入门简单得不能再简单的问题,根本就不值得写篇记录来记录的. 一.变量数值交换 先说变量数值交换,从C语言开始,我们就知道要先设置一个临时变量,再把某元素的值覆盖此临时变量,避免临时覆盖等,如果不设置临时变量,还有位运算的交换形式 然而Python中根本就不用这么复杂,如果要交换变量e1,e2彼此的值,就下面一行代码就足矣: e1,e2=e2,e1; 比如,如下
-
Python中请使用isinstance()判断变量类型
一.isinstance() 在Python中可以使用type()与isinstance()这两个函数判断对象类型,而isinstance()函数的使用上比type更加方便. 复制代码 代码如下: # coding=utf-8 a = 10 def b(): pass print isinstance(a,(int,str)) print isinstance(a,(float,str)) print isinstance(b,(str,int)) class c:
-
Python 比较两个数组的元素的异同方法
通过set()获取两个数组的交/并/差集: print set(a).intersection(set(b)) # 交集 print set(a).union(set(b)) # 并集 print set(a).difference(set(b)) # 差集,在a中但不在b中的元素 print set(b).difference(set(a)) # 差集,在b中但不在a中的元素 以上这篇Python 比较两个数组的元素的异同方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多
-
Python 检查数组元素是否存在类似PHP isset()方法
PHP中有isset方法来检查数组元素是否存在,在Python中无对应函数. Python的编程理念是"包容错误"而不是"严格检查".举例如下: 复制代码 代码如下: Look before you leap (LBYL): if idx < len(array): array[idx] else: #handle this Easier to ask forgiveness than permission (EAFP): try: array[idx] ex
-
python获取元素在数组中索引号的方法
本文实例讲述了python获取元素在数组中索引号的方法.分享给大家供大家参考.具体如下: 这里python是通过index方法获取索引号的 li = ['a', 'b', 'new', 'D', 'z', 'example', 'new', 'two', 'elements'] print li.index("example") print li.index("new") print li.index("z") print "c&quo
-
Python判断变量是否为Json格式的字符串示例
Json介绍 全名JavaScript Object Notation,是一种轻量级的数据交换格式.Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式.现在也常用于http请求中,所以对json的各种学习,是自然而然的事情. 本文主要介绍的是利用Python判断变量是否为Json格式的字符串,对大家日常学习工作具有一定的参考价值,下面话不多说,直接来看代码吧. 示例代码如下 # -*- coding=utf-8 -*- import json def check_json_
-
python实现判断数组是否包含指定元素的方法
本文实例讲述了python实现判断数组是否包含指定元素的方法.分享给大家供大家参考.具体如下: python判断数组是否包含指定的元素的方法,直接使用in即可,python真是简单易懂 print 3 in [1, 2, 3] # membership (1 means true inventory = ["sword", "armor", "shield", "healing potion"] if "healin
-
Python判断变量是否已经定义的方法
Python判断变量是否已经定义是一个非常重要的功能,本文就来简述这一功能的实现方法. 其实Python中有很多方法可以实现判断一个变量是否已经定义了.这里就举出最常用的两种作为示例,如下所示: 方法一:try except方法: def isset(v): try : type (eval(v)) except : return 0 else : return 1 用法: if isset('user_name'): print 'user_name is defined' else prin
随机推荐
- Java实现一个小说采集程序的简单实例
- 在Ruby on Rails上使用Redis Store的方法
- Access数据库提示OleDbException (0x80004005): 操作必须使用一个可更新的查询
- mysql报错1033 Incorrect information in file: ‘xxx.frm’问题的解决方法
- Oracle 当前用户下所有表的记录总数
- jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
- 用正则提取全部的匹配结果的代码
- 腾讯云(ubuntu)下安装 nodejs + 实现 Nginx 反向代理服务器
- MVC5下拉框绑定的方法(单选)
- PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
- 通达OA公共代码 php常用检测函数
- 用PHP编写和读取XML的几种方式
- 推荐下天枫常用ASP函数封装,推荐大家使用
- C#实现文件上传下载Excel文档示例代码
- 分享一个插件实现水珠自动下落效果
- 如何在Ubuntu下启动Apache的Rewrite功能
- Linux使用libnet实现ARP攻击脚本原理分析以防被攻击
- 详解python开发环境搭建
- JS判断网页广告是否被浏览器拦截过滤的代码
- 用djbdns建立dns缓存加速网络连接