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 ...
随机推荐
- Angular6之ng build | ng build --aot | ng build --prod 差异
由于写了大半年的项目终于要告一段落并且即将进行第二阶段优化开发,emmm 基础版本已经二十多个模块了,必不可少的优化是很重要的,尽管项目上使用多层嵌套懒加载,但是在首屏加载的时候,任然很慢啊,因为一直 ...
- 零基础配置Linux服务器环境
详细步骤请走官方通道 over!over!over!
- LVS-DR VIP和RIP不同网段的配置方法
http://blog.itpub.net/25723371/viewspace-1446935/
- JQuery Easyui/TopJUI 多表头创建
JQuery Easyui/TopJUI 多表头创建 废话不多说,直接贴上代码. html <div data-toggle="topjui-layout" data-opt ...
- [題解]hdu_6412公共子序列
https://blog.csdn.net/nka_kun/article/details/81902421 #include<bits/stdc++.h> #define ll long ...
- Day1课后作业:用户登录简单版
user = "gaojun"password ="123abc"for i in range(3): user = input('请输入用户名:') pass ...
- AtCoder Regular Contest 078 D
D - Fennec VS. Snuke Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement F ...
- mybatis实现简单的增删查改
接触一个新技术,首先去了解它的一些基本概念,这项技术用在什么方面的.这样学习起来,方向性也会更强一些.我对于mybatis的理解是,它是一个封装了JDBC的java框架.所能实现的功能是对数据库进行增 ...
- HTML实例之简单的网页布局
需求: <html> <head> <title>简单的表格网页布局</title> <meta charset="UTF-8" ...
- java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
在往数据库添加数据需要判断数据库中是否已有记录,判断的返回结果通常是List.在List为空的情况下,调用其方法需要格外注意,例如:调用get()则会报下标越界的异常. 当然还可以联想到其他情况,当判 ...