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

python 動(dòng)態(tài)生成變量名以及動(dòng)態(tài)獲取變量的變量名方法

 更新時(shí)間:2019年01月20日 14:42:55   作者:sy_y  
今天小編就為大家分享一篇python 動(dòng)態(tài)生成變量名以及動(dòng)態(tài)獲取變量的變量名方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

前言

需求:

必須現(xiàn)在需要?jiǎng)討B(tài)創(chuàng)建16個(gè)list,每個(gè)list的名字不一樣,但是是有規(guī)律可循,比如第一個(gè)list的名字叫:

arriage_list_0=[],第二個(gè)叫arriage_list_1=[]……..依次類(lèi)推,但是我又不想手動(dòng)的去寫(xiě)16個(gè)這樣的名字,太累了,而且增加了代碼的冗余性,靈活性也不強(qiáng),所以有沒(méi)有一種方法是能動(dòng)態(tài)創(chuàng)建list名稱的呢?答案是有的!而與之對(duì)應(yīng),既然要對(duì)上面的列表動(dòng)態(tài)操作,肯定是少不了動(dòng)態(tài)去解析list名稱。所以下面開(kāi)始介紹方法。

python 動(dòng)態(tài)生成變量名

locals函數(shù)

代碼之前,先介紹一個(gè)函數(shù):

locals() 函數(shù)會(huì)以字典類(lèi)型返回當(dāng)前位置的全部局部變量。

菜鳥(niǎo)上的例子:

>>>def runoob(arg): # 兩個(gè)局部變量:arg、z
...  z = 1
...  print (locals())
... 
>>> runoob(4)
{'z': 1, 'arg': 4}  # 返回一個(gè)名字/值對(duì)的字典

下面用自己的例子來(lái)實(shí)現(xiàn)下,目標(biāo):動(dòng)態(tài)創(chuàng)建名字為list_0到list_15的16個(gè)list列表:

關(guān)鍵代碼:

# 第一步 準(zhǔn)備locals函數(shù)
prepare_list = locals()
""" 
第二步 循環(huán)16次,從0-15賦值給locals函數(shù)對(duì)應(yīng)的變量prepare_list 
  prepare_list是一個(gè)字典,所以將我們需要的列表名稱作為key值傳入
"""
for i in range(16):
 arriage_list['list_' + str(i)] = []

測(cè)試代碼:

def test_list_pre():
 prepare_list = locals()
 for i in range(16):
  prepare_list['list_' + str(i)] = []
  prepare_list['list_' + str(i)].append(('我是第' + str(i)) + '個(gè)list')
 print(prepare_list['list_0'])
 print(prepare_list['list_1'])
 print(prepare_list['list_2'])
 print(prepare_list['list_3'])

if __name__ == '__main__':
 test_list_pre()

實(shí)驗(yàn)截圖:

python 動(dòng)態(tài)生成變量名以及動(dòng)態(tài)獲取變量的變量名

實(shí)際證明,已經(jīng)動(dòng)態(tài)的每次往list插入了值。

python 動(dòng)態(tài)獲取變量的變量名

需求目標(biāo):如果有了上面的動(dòng)態(tài)命名list,那么當(dāng)動(dòng)態(tài)獲取變量的變量名,就需要如下的操作:

利用python原生的inspect庫(kù)來(lái)實(shí)現(xiàn):

核心代碼:

import inspect
def get_variable_name(variable):
 callers_local_vars = inspect.currentframe().f_back.f_locals.items()
 return [var_name for var_name, var_val in callers_local_vars if var_val is variable]

測(cè)試代碼:

def get_variable_name(variable):
 callers_local_vars = inspect.currentframe().f_back.f_locals.items()
 return [var_name for var_name, var_val in callers_local_vars if var_val is variable]


if __name__ == '__main__':
 prepare_list = locals()
 for i in range(16):
  prepare_list['list_' + str(i)] = []
  prepare_list['list_' + str(i)].append(('我是第' + str(i)) + '個(gè)list')
 a = get_variable_name(prepare_list['list_0']).pop()
 b = get_variable_name(prepare_list['list_1']).pop()
 print(a)
 print(b)

實(shí)驗(yàn)截圖:

python 動(dòng)態(tài)生成變量名以及動(dòng)態(tài)獲取變量的變量名

以上這篇python 動(dòng)態(tài)生成變量名以及動(dòng)態(tài)獲取變量的變量名方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pandas DataFrame replace替換后無(wú)效的解決

    Pandas DataFrame replace替換后無(wú)效的解決

    這篇文章主要介紹了Pandas DataFrame replace替換后無(wú)效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • np.random.seed() 的使用詳解

    np.random.seed() 的使用詳解

    這篇文章主要介紹了np.random.seed() 的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python模擬實(shí)現(xiàn)斗地主發(fā)牌

    python模擬實(shí)現(xiàn)斗地主發(fā)牌

    這篇文章主要為大家詳細(xì)介紹了python代碼模擬實(shí)現(xiàn)斗地主發(fā)牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • Python通過(guò)字典映射函數(shù)實(shí)現(xiàn)switch

    Python通過(guò)字典映射函數(shù)實(shí)現(xiàn)switch

    這篇文章主要介紹了Python通過(guò)字典映射函數(shù)實(shí)現(xiàn)switch,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python實(shí)戰(zhàn)之markdown轉(zhuǎn)pdf(包含公式轉(zhuǎn)換)

    Python實(shí)戰(zhàn)之markdown轉(zhuǎn)pdf(包含公式轉(zhuǎn)換)

    由于我們markdown編輯器比較特殊,不是很方便瀏覽,如果轉(zhuǎn)換成pdf的話,就不需要可以的去安裝各種編輯器才可以看了。所以本文將介紹如何通過(guò)Python實(shí)現(xiàn)md轉(zhuǎn)pdf或者是docx,需要的朋友可以參考一下
    2021-12-12
  • 解決python測(cè)試opencv時(shí)imread導(dǎo)致的錯(cuò)誤問(wèn)題

    解決python測(cè)試opencv時(shí)imread導(dǎo)致的錯(cuò)誤問(wèn)題

    今天小編就為大家分享一篇解決python測(cè)試opencv時(shí)imread導(dǎo)致的錯(cuò)誤問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python 列表、字典和集合的添加和刪除操作

    python 列表、字典和集合的添加和刪除操作

    今天小編就為大家分享一篇python 列表、字典和集合的添加和刪除操作,有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Python不同目錄間進(jìn)行模塊調(diào)用的實(shí)現(xiàn)方法

    Python不同目錄間進(jìn)行模塊調(diào)用的實(shí)現(xiàn)方法

    這篇文章主要介紹了Python不同目錄間進(jìn)行模塊調(diào)用的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python多線程編程簡(jiǎn)單介紹

    Python多線程編程簡(jiǎn)單介紹

    這篇文章主要介紹了Python多線程編程簡(jiǎn)單介紹,本文講解了創(chuàng)建線程、Thread對(duì)象函數(shù)、常用示例等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • python3中No module named _ssl的問(wèn)題解決

    python3中No module named _ssl的問(wèn)題解決

    本文主要介紹了python3中No module named _ssl的問(wèn)題解決,這個(gè)錯(cuò)誤表示Python導(dǎo)入_ssl模塊時(shí)失敗,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08

最新評(píng)論