91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python 動態生成變量名以及動態獲取變量的變量名方法

發布時間:2020-10-23 23:22:06 來源:腳本之家 閱讀:173 作者:sy_y 欄目:開發技術

前言

需求:

必須現在需要動態創建16個list,每個list的名字不一樣,但是是有規律可循,比如第一個list的名字叫:

arriage_list_0=[],第二個叫arriage_list_1=[]……..依次類推,但是我又不想手動的去寫16個這樣的名字,太累了,而且增加了代碼的冗余性,靈活性也不強,所以有沒有一種方法是能動態創建list名稱的呢?答案是有的!而與之對應,既然要對上面的列表動態操作,肯定是少不了動態去解析list名稱。所以下面開始介紹方法。

python 動態生成變量名

locals函數

代碼之前,先介紹一個函數:

locals() 函數會以字典類型返回當前位置的全部局部變量。

菜鳥上的例子:

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

下面用自己的例子來實現下,目標:動態創建名字為list_0到list_15的16個list列表:

關鍵代碼:

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

測試代碼:

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)) + '個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()

實驗截圖:

python 動態生成變量名以及動態獲取變量的變量名方法

實際證明,已經動態的每次往list插入了值。

python 動態獲取變量的變量名

需求目標:如果有了上面的動態命名list,那么當動態獲取變量的變量名,就需要如下的操作:

利用python原生的inspect庫來實現:

核心代碼:

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]

測試代碼:

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)) + '個list')
 a = get_variable_name(prepare_list['list_0']).pop()
 b = get_variable_name(prepare_list['list_1']).pop()
 print(a)
 print(b)

實驗截圖:

python 動態生成變量名以及動態獲取變量的變量名方法

以上這篇python 動態生成變量名以及動態獲取變量的變量名方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云龙县| 峨眉山市| 武宁县| 阆中市| 和田县| 平果县| 松滋市| 买车| 石狮市| 三江| 灵璧县| 天柱县| 秦皇岛市| 陆川县| 潮安县| 萨迦县| 沙湾县| 临泽县| 屯留县| 洪洞县| 呼伦贝尔市| 浮山县| 新营市| 新竹市| 新龙县| 象州县| 五寨县| 西乡县| 常宁市| 广丰县| 健康| 唐河县| 崇礼县| 德阳市| 东丰县| 海口市| 久治县| 平邑县| 邛崃市| 手游| 曲沃县|