如何获取数组的内容

2024-05-21 16:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何在一个矩阵中为几个以“yoyo”开头的数组添加值。你知道吗

代码:

yoyo_asd=('a','b','c')
yoyo_bsd=('asd','111','222')
matrix=[]

我正试着做这样的事,但什么都没有。。你知道吗

for vars in dir():
  if vars.startswith("yoyo"):
    matrix.append([vars])

这是我的目标:

matrix = [
    ['a','b','c'],
    ['asd','111','222'],
]

Tags: 代码in目标forifdirbsd矩阵
3条回答

像这样尝试你想要的我会像那样工作。你知道吗


yoyo_asd=('a','b','c')
yoyo_bsd=('asd','111','222')
matrix=[]
for vars in dir():
  if vars.startswith("yoyo"):
    matrix.append([i for i in vars])

您可以只使用vars,它返回local命名空间的dict,如下所示:

>>> yoyo_asd=('a','b','c')
>>> yoyo_bsd=('asd','111','222')
>>> matrix=[]
>>> for key, val in vars().items(): # if you are want a global namespace, then use `globals()`
...   if key.startswith('yoyo'):
...     matrix.append(val)
... 
>>> matrix
[('a', 'b', 'c'), ('asd', '111', '222')]
>>> 

Help on built-in function vars in module builtins:

vars(...) vars([object]) -> dictionary

Without arguments, equivalent to locals().
With an argument, equivalent to object.__dict__.

应为一行:

matrix = [list(val) for key, val in globals().items() if key.startswith('yoyo')]

相关问题 更多 >