国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-16 00:46:18
字體:
來源:轉載
供稿:網友

前言

需求:

必須現在需要動態創建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 inspectdef 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)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仁布县| 湟中县| 镇赉县| 福建省| 林周县| 梅河口市| 黄平县| 丁青县| 江孜县| 巴南区| 社旗县| 东阳市| 西丰县| 衡水市| 姚安县| 阳谷县| 临汾市| 白银市| 类乌齐县| 张北县| 巴中市| 哈尔滨市| 华宁县| 深州市| 龙井市| 郯城县| 山东| 肇州县| 象山县| 西峡县| 桐城市| 白城市| 枣阳市| 莎车县| 新兴县| 伊川县| 库伦旗| 林周县| 四子王旗| 资源县| 西乌珠穆沁旗|