Python数据结构和类型--解压序列赋值多个变量
Python数据结构和类型
1.1 解压序列赋值给多个变量
现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量?
解决思路:先通过简单的解压赋值给多个变量,前提是变量的数量和序列元素的数量是一致的
下面是简单的代码
p = (1,2,3) # 这里的p是一个元组tuple
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,_ = data
>>>share
20
>>>price
30.11
在测试中发现,输入丢弃变量的* _ *的时候,显示的值是(16,28,99),这里的原理不清楚,
经过园有的评论知道,_ 已经被最后一个值(16,28,99) 重新赋值了
1.2 解压可迭代对象赋值给多个变量
Python数据结构和类型--解压序列赋值多个变量的更多相关文章
- Chapter One:数据结构和算法-解压序列赋值给多个变量
一.问题: 现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量? 二.解决方案: 代码示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...
- Python 解压序列、可迭代对象并赋值给多个变量
Python数据结构和类型 1.1 解压序列赋值给多个变量 现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量? 解决思路:先通过简单的解压赋值给多个变量,前提是变量的数 ...
- python之解压序列并赋值给变量
N个数量的序列(可迭代对象),赋值给N个变量. 字符串: 1 #!usr/bin/env python3 2 # -*- Coding=utf-8 -*- 3 4 ''' 5 解压序列(或者任何可迭代 ...
- 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 #中间的 ...
- Python print命令/ 解压序列
Python 命令参数 print 命令 : #默认的print是有个 空格,和换行的 # print(sep= ' ') # print(end = '/n') a = 'sunjinchao' ...
- 解密for循环工作机制之迭代器,以及生成器、三元表达式与列表解析、解压序列
本节内容 1.迭代器协议与for循环 2.三元表达式 3.解压序列 4.列表解析 5.生成器 迭代器协议与for循环 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中下一项, ...
- Python对文件的解压和压缩
zipfile: 解压: import os, zipfile serverzip_path = 'D:\\server.zip' serverzip_target_path = 'd:\\2' f ...
- python利用7z批量解压rar
一开始我使用了rarfile这个库,奈何对于含有密码的压缩包支持不好,在linux上不抛出异常:之后有又尝试了unrar..比rarfile还费劲.. 所以用了调用系统命令的方法,用7z来解压 通过a ...
随机推荐
- fitnesse(gradle构建)安装步骤
1.安装jdk.ant.gradle(参考http://www.cnblogs.com/274914765qq/p/4401525.html) 2.下载Fitnesse https://github. ...
- 福建工程学院第十四届ACM程序设计大赛 - E - 外传:小晋逃生记
http://www.fjutacm.com/Contest.jsp?cid=705#P4 其实想清楚了就很简单,之前想了很多种方法,以为是二分什么的,看起来就像是一个单峰函数.但是发现直接暴力一波就 ...
- lightoj 1099【dijkstra/BFS】
题意: 求 1-N 的第二长路,一条路可以重复走 if two or more shortest paths exist, the second-shortest path is the one wh ...
- HDU4255【BFS】
题意: 给你一个矩阵,矩阵里是的数是这么安排的,然后给你两个数,让你求这两个数的最短距离,素数不能去: 思路: 预处理一下素数表,矩阵,然后找一下起点和终点的坐标,跑一下BFS就好了: #includ ...
- laravel 数据库连接Mysql
找到 config/database.php 'mysql' => [ 'driver' => 'mysql', //数据库的类型 'host' => env('DB_HOST', ...
- 多线程Demo1 了解
首先演示一下主线程的阻塞 // DYFViewController.m // 623-01-阻塞多线程 // // Created by dyf on 14-6-23. // Copy ...
- 覆盖equals方法时请遵守通用约定
覆盖equals方法时请遵守通用约定 覆盖equals方法看起来很简单,但是有许多覆盖方式会导致错误,并且后果很严重.最容易避免这种类问题的方法就是不覆盖equals方法,在这种情况下,类的每个实 ...
- pgsql_sql查询效率优化
在pgsql中执行一个 5表 关联查询,效率比较差,问题定位 环境说明5张外表,其中with 中的临时表总记录数比较大,共有 2 亿条记录,通过时间序模型提高查询速度另外4张表 左表的记录非常小,最大 ...
- dosbox让DOSBox启动后自动执行命令——自动挂载
学习汇编时. 每次启动DOSBox后,都要挂载.转盘符,于是有一个骚套路. 找到这个:bat文件 用记事本就可以编辑. 拉到最下面,找到[autoexec]部分,补充命令如下: mount c f: ...
- ACM之路
从10月我刚接触到acm竞赛,到现在2017年2.20接近4个月的时间,我才刷到200道题.在刷题的过程中,我曾遇到困难,我也从一次性就a过,但是有时候会想到放弃.不过既然已经踏进来一只脚,还不如就好 ...