我有一个自动收录器,我想检查一个特定的自动收录器列表,以查看是否找到了该自动收录器。如果找到它,它将替换它。
新的报价器来自另一个数据源,因此不知道要检查哪个特定的报价器列表。为了找到该列表,我可以将列表名称作为字符串传递,但是在迭代代码时(自然地),将其识别为字符串,而不是要迭代的列表。
有没有办法让代码/函数识别字符串实际上是要检查的特定列表?在阅读其他问题时,我知道这可能是不可能的...在那种情况下,还有什么选择?
list_1=['A','B']
list_2=['C','D']
old_ticker='A'
new_ticker='E'
assigned_list='list_1'
def replace_ticker(old_ticker,new_ticker,list):
for ticker in list:
if new_ticker in list:
return
else:
list.append(new_ticker)
list.remove(old_ticker)
replace_ticker(old_ticker,new_ticker,assigned_list)
答案 0 :(得分:0)
至少有两种可能性:
1 如评论中所述,有些过分但可能:
在链接中,更多地使用CPack: Create package
CPackDeb: - Generating dependency list
CMake Error at /usr/share/cmake-3.10/Modules/CPackDeb.cmake:709 (message):
CPackDeb: dpkg-shlibdeps: 'dpkg-shlibdeps: error: cannot find library
libsystemc.so.2.3 needed
将字符串作为python表达式求值:
https://thepythonguru.com/python-builtin-functions/eval/
例如:
eval()
2 秒
使用list_name = 'list_1'
eval('{}.append(new_ticker)'.format(list_name))
与其他答案相似的局部范围变量字典,但无需手动创建dict,这也需要了解所有变量名称。
locals()
答案 1 :(得分:0)
您在字典中按名称键入所需列表:
list_name = 'list_1'
locals()[list_name].append(new_ticker)
现在,您可以接受名称,并以ticker_directory = {
"list_1": list_1,
"list_2": list_2
}
的形式获得所需的列表。