欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中賦值語句的特點(diǎn)和形式

 更新時間:2023年12月20日 09:11:35   作者:Python探索牛  
這篇文章主要介紹了python中賦值語句的特點(diǎn)和形式,文中介紹了多目標(biāo)賦值的共享引用問題,多目標(biāo)賦值其實(shí)是多個目標(biāo)對同一個內(nèi)存空間的引用,這里要分兩種情況,當(dāng)被引用對象是不可變對象時則不存在問題,感興趣的朋友跟隨小編一起看看吧

1. 賦值語句的特點(diǎn)

  • 賦值語句創(chuàng)建對象的引用:賦值語句總是創(chuàng)建對象的引用,而不是復(fù)制對象。因此,Python中的變量更像是指針,而不是數(shù)據(jù)儲存區(qū)域。
  • 變量在首次賦值時會被創(chuàng)建:因此不需要提前聲明變量。
  • 變量在引用前必須先賦值:如果引用未賦值的變量會報錯

2. 賦值語句的形式

(1. 普通形式

>>> a = 'abc'          # 普通形式
>>> b = 123
>>> c = [1, 2, 3]

(2. 序列賦值

python中"="的右側(cè)可以接受任意類型的序列,也可以是可迭代的對象,只要長度等于左側(cè)序列即可。

>>> (a, b) = ('1', '2')   # 元組賦值,括號可省略
>>> [a, b] = ['1', '2']   # 列表賦值
>>> a, b, c, d = 'spam'   # 字符串序列賦值
# python中交換兩個變量的值可以不用穿件第三個臨時變量
>>> x, y = 1, 2
>>> x, y = y, x
>>> x, y
(2, 1)
# 當(dāng)?shù)忍栕髠?cè)與右側(cè)變量長度不一致時,考慮用分片解決
>>> num = '123'
>>> a, b = num[:1], num[1:]
>>> a, b
('1', '23')
>>> num = '123'
>>> a, b = list(num[:1]) + [num[1:]]
>>> a, b
('1', '23')
# 嵌套賦值
>>> ((a, b), c) = ('12','3')
>>> a, b, c
('1', '2', '3')

3.擴(kuò)展序列解包(*)

*X:序列賦值時,帶有*的名稱會被賦值一個列表,該列表收集序列中剩下的沒被賦值給其他名稱的所有項,可用于=左右兩側(cè)變量數(shù)目不同的情況。

>>> num = [1, 2, 3, 4]
>>> a, b = num   # 變量個數(shù)不同會報錯
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)  
>>> a, *b = num   # 擴(kuò)展序列解包
>>> a, b
(1, [2, 3, 4])
>>> first, *mid, last = num  # 擴(kuò)展序列解包的*可以出現(xiàn)在任何位置
>>> first, mid, last
(1, [2, 3], 4)

邊界情況(特殊情況)(1. 帶星號的名稱值匹配到單個項,但仍然返回一個列表

>>> a = [1, 2, 3, 4]
>>> b, c, d, *e = a
>>> (b, c, d, e)
(1, 2, 3, [4])

(2. 若帶星號的名稱不能匹配到任何項,則返回一個空列表

>>> a = [1, 2, 3, 4]
>>> b, c, d, e, *f = a
>>> (b, c, d, e, f)
(1, 2, 3, 4, [])

(3. 若用了多個帶星號的名稱則會報錯

>>> a = [1, 2, 3, 4]
>>> *b, c, *d = a
  File "<stdin>", line 1
SyntaxError: two starred expressions in assignment

(4. 帶星號的名稱沒有被編寫到一個列表中會報錯

>>> a = [1, 2, 3, 4]
>>> *b = a
  File "<stdin>", line 1
SyntaxError: starred assignment target must be in a list or tuple
>>> *b, = a
>>> b
[1, 2, 3, 4]

4. 多目標(biāo)賦值(連續(xù)賦值)

多目標(biāo)賦值即將最右側(cè)的對象依次賦值給左側(cè)所有的名稱。

>>> a = b = c = 0
>>> (a, b, c)
(0, 0, 0)

多目標(biāo)賦值的共享引用問題

多目標(biāo)賦值其實(shí)是多個目標(biāo)對同一個內(nèi)存空間的引用,這里要分兩種情況,當(dāng)被引用對象是不可變對象時則不存在問題;但是如果多目標(biāo)都引用了同一個可變對象,則會出現(xiàn)問題

>>> a = b = 1
>>> (a, b)
(1, 1)
>>> b = 2
>>> (a, b)
(1, 2)
# a的值沒有因?yàn)閎的改變而改變
#學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流群:711312441
>>> a = b = [1, 2]
>>> (a, b)
([1, 2], [1, 2])
>>> b[1] = 3
>>> (a, b)
([1, 3], [1, 3])
# a的值隨著b值得改變而改變,即使沒有主動給a賦值,這是因?yàn)閍,b同時引用了一個可變對象,改變該對象則會通知改變a和b的值

到此這篇關(guān)于python中賦值語句教程的文章就介紹到這了,更多相關(guān)python賦值語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 服務(wù)器端jupyter notebook映射到本地瀏覽器的操作

    服務(wù)器端jupyter notebook映射到本地瀏覽器的操作

    這篇文章主要介紹了服務(wù)器端jupyter notebook映射到本地瀏覽器的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python爬蟲輔助利器PyQuery模塊的安裝使用攻略

    Python爬蟲輔助利器PyQuery模塊的安裝使用攻略

    這篇文章主要介紹了Python爬蟲輔助利器PyQuery模塊的安裝使用攻略,PyQuery可以方便地用來解析HTML內(nèi)容,使其成為眾多爬蟲程序開發(fā)者的大愛,需要的朋友可以參考下
    2016-04-04
  • 利用python實(shí)現(xiàn)3種梯度下降算法

    利用python實(shí)現(xiàn)3種梯度下降算法

    梯度下降法是一種優(yōu)化算法,用于求解函數(shù)的最小值或最大值,它通過迭代的方式,沿著函數(shù)的梯度方向逐步調(diào)整參數(shù),以找到函數(shù)的極值點(diǎn),本文給大家介紹了利用python實(shí)現(xiàn)3種梯度下降算法,需要的朋友可以參考下
    2023-12-12
  • python opencv 圖像尺寸變換方法

    python opencv 圖像尺寸變換方法

    下面小編就為大家分享一篇python opencv 圖像尺寸變換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • pandas series序列轉(zhuǎn)化為星期幾的實(shí)例

    pandas series序列轉(zhuǎn)化為星期幾的實(shí)例

    下面小編就為大家分享一篇pandas series序列轉(zhuǎn)化為星期幾的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Pandas的數(shù)據(jù)過濾實(shí)現(xiàn)

    Pandas的數(shù)據(jù)過濾實(shí)現(xiàn)

    這篇文章主要介紹了Pandas的數(shù)據(jù)過濾實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python calendar日歷模塊的應(yīng)用案例演示

    Python calendar日歷模塊的應(yīng)用案例演示

    calendar模塊是python用來處理日歷的模塊,通過不同的api和格式輸出多種形式的日歷格式,下面就通過不同的api和參數(shù)來輸出和學(xué)習(xí)calendar模塊的用法
    2023-06-06
  • PyTorch中常用的激活函數(shù)的方法示例

    PyTorch中常用的激活函數(shù)的方法示例

    這篇文章主要介紹了PyTorch中常用的激活函數(shù)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python Tornado框架詳解

    python Tornado框架詳解

    Tornado是一個 Python Web框架,用于開發(fā)高性能網(wǎng)絡(luò)應(yīng)用程序,本文給大家詳細(xì)介紹python Tornado框架的相關(guān)知識,感興趣的朋友一起看看吧
    2024-03-03
  • 如何在windows下安裝配置python工具Ulipad

    如何在windows下安裝配置python工具Ulipad

    這篇文章主要介紹了如何在windows下安裝配置python工具Ulipad,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10

最新評論