最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ì)大家有所幫助。一起跟隨小編過來看看吧

前言

需求:

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

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

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

locals函數(shù)

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

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

菜鳥上的例子:

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

下面用自己的例子來實(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庫來實(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)獲取變量的變量名方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python并發(fā)編程實(shí)例教程之線程的玩法

    Python并發(fā)編程實(shí)例教程之線程的玩法

    編程的樂趣之一是想辦法讓程序執(zhí)行的越來越快,代碼越寫越優(yōu)雅,這篇文章主要給大家介紹了關(guān)于Python并發(fā)編程實(shí)例教程之線程的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • Python中最快的循環(huán)姿勢(shì)實(shí)例詳解

    Python中最快的循環(huán)姿勢(shì)實(shí)例詳解

    python給我們提供了多個(gè)循環(huán)方法,比如while循環(huán)、for循環(huán)等,下面這篇文章主要給大家介紹了關(guān)于Python中最快的循環(huán)姿勢(shì),需要的朋友可以參考下
    2021-11-11
  • python實(shí)現(xiàn)的希爾排序算法實(shí)例

    python實(shí)現(xiàn)的希爾排序算法實(shí)例

    這篇文章主要介紹了python實(shí)現(xiàn)的希爾排序算法,實(shí)例分析了基于Python實(shí)現(xiàn)希爾排序的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • 使用Python實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備配置備份與恢復(fù)

    使用Python實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備配置備份與恢復(fù)

    網(wǎng)絡(luò)設(shè)備配置備份與恢復(fù)在網(wǎng)絡(luò)安全管理中起著至關(guān)重要的作用,本文為大家介紹了如何通過Python實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備配置備份與恢復(fù),需要的可以參考下
    2025-03-03
  • 深入解析Python中的變量和賦值運(yùn)算符

    深入解析Python中的變量和賦值運(yùn)算符

    這篇文章主要介紹了深入解析Python中的變量和賦值運(yùn)算符,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • 詳解如何在PyQt5中實(shí)現(xiàn)平滑滾動(dòng)的QScrollArea

    詳解如何在PyQt5中實(shí)現(xiàn)平滑滾動(dòng)的QScrollArea

    Qt 自帶的 QScrollArea 滾動(dòng)時(shí)只能在兩個(gè)像素節(jié)點(diǎn)之間跳變,看起來很突兀。所以本文將通過定時(shí)器,重寫 wheelEvent() 來實(shí)現(xiàn)平滑滾動(dòng),需要的可以參考一下
    2023-01-01
  • Python devel安裝失敗問題解決方案

    Python devel安裝失敗問題解決方案

    這篇文章主要介紹了Python devel安裝失敗問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python使用切片移動(dòng)元素位置的代碼實(shí)踐

    Python使用切片移動(dòng)元素位置的代碼實(shí)踐

    在 Python 中,切片是指從序列類型(如列表、字符串、元組等)中提取子序列的過程,切片可以用來快速獲取列表的一部分也可以用于反轉(zhuǎn)列表,本文小編給大家介紹了Python使用切片移動(dòng)元素位置的代碼實(shí)踐,需要的朋友可以參考下
    2024-09-09
  • 一文詳解Python中哈希表的使用

    一文詳解Python中哈希表的使用

    哈希表或稱為散列表,是一種常見的、使用頻率非常高的數(shù)據(jù)存儲(chǔ)方案。本文將站在開發(fā)者的角度,帶著大家一起探究哈希的世界,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-05-05
  • Python實(shí)現(xiàn)井字棋小游戲

    Python實(shí)現(xiàn)井字棋小游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)井字棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03

最新評(píng)論

晋城| 万全县| 邻水| 山阴县| 余姚市| 娄烦县| 平武县| 突泉县| 武汉市| 宕昌县| 缙云县| 易门县| 二手房| 哈尔滨市| 威信县| 和龙市| 尉氏县| 华坪县| 沙河市| 蒲城县| 罗源县| 阳西县| 尤溪县| 绥宁县| 安义县| 沛县| 横山县| 平利县| 赤水市| 黎平县| 南平市| 沿河| 庆元县| 彩票| 洪江市| 上高县| 弋阳县| 伽师县| 怀仁县| 平南县| 天镇县|