Python学习记录01-将序列分解为单独的变量

{alert type=”info”}
从今天开始,新开一个系列,我准备把学习Python cookbook这本书的代码自己敲一遍,加深理解和了解Python的库带的一些方法。
因为现实情况,现在很少能有时间看实体书。所以这个系列的学习资料全部参考这个文档。 https://python3-cookbook.readthedocs.io/zh_CN/latest/c01/p01_unpack_sequence_into_separate_variables.html 感谢大佬们的翻译和付出。

以后不出意外的话不知道更新什么,就会更新Python相关的基础知识。

{/alert}

1.1的内容是:将序列分解为单独的变量

  • 一般来说,我们使用下面的方式进行给变量赋值。
a = 3
b, c = 4, 5

if __name__ == '__main__':
    print(a, b, c)
#值分别为 3,4,5

假如我们要赋的值在一个列表里,有个列表list1 = [100,200,300]
我想把 300的值赋给d。我想我们肯定会想到 d = list1[2] 这种办法。 那么新的问题来了。我想把这个列表的值分别赋给3个变量a b c。我总不能傻傻的写 a=list[0],b=list[1],c=list[2]吧。

知识点来了:是可迭代对象可以通过一个简单的赋值操作来分解为单独的变量。 前提就是变量的总数和结构必须与可迭代的对象相吻合。

那么在这里,我们可以使用 a,b,c =list1 即可实现需求。

Python里的可迭代对象一般包括:字符串,列表,元组,集合,字典等 ,如果你不确定你的对象是否可迭代。那么可以使用内置方法hasattr 来判断,也可以使用 collections.abc 的 Iterable 来判断是否是可迭代

from collections.abc import Iterable
if __name__ == '__main__':
    print(isinstance('abc',Iterable))   #字符串
    print(isinstance([],Iterable))   #列表
    print(isinstance({},Iterable))    #字典
    print(isinstance({1,2,3},Iterable))    #集合
    print(isinstance((1,),Iterable)) #元组

##以上结果均为True

很多时候, 我们可能只需要其中的一个值,这时候如果采用这种方法的话,我们就可以使用一个占位的变量就可以啦。反正 这种_ 变量在业务里不要使用即可。

 data = ['张三','lisi','wangwu']
    _,a,_ = data
    print(a) #lisi  

{message type=”warning” content=”最终要的就是变量的总数要和赋值的结构数量要一致。不然就报错了。”/}

  data = ['hello1','hello2','hello3']
    a ,b ,c ,d =data #报错 ValueError: not enough values to unpack (expected 4, got 3)
    a , b = data #报错ValueError: too many values to unpack (expected 2)

不错,学到了!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇