Python:有没有办法在for循环中使用范围作为输出名称?

时间:2018-02-07 13:55:30

标签: python for-loop

我正在搜索一个是在for循环中使用范围作为输出名称。我可以想到其他方法来做到这一点,但这是为了一个班级,所以我确信我忽略了一些简单的事情。在下面的简化代码中,我希望输出类似于:

“t1 = [[0.5 1. 1.5]  [2. 2.5 3.]]“

“t2 = [[3.5 4. 4.5]  [5. 5.5 6.]]“

console.log(organizations)

3 个答案:

答案 0 :(得分:0)

这应该有效:

t = {}
t[1] = np.array([[1,2,3],[4,5,6]])
t[2] = np.array([[7,8,9],[10,11,12]])

t = {k: v/2 for k, v in t.items()}

{1: array([[ 0.5,  1. ,  1.5],
       [ 2. ,  2.5,  3. ]]),
 2: array([[ 3.5,  4. ,  4.5],
       [ 5. ,  5.5,  6. ]])}

答案 1 :(得分:0)

这就是你要找的东西吗?

t1 = np.array([[1,2,3],[4,5,6]])
t2 = np.array([[7,8,9],[10,11,12]])


def print_list(name, value):
    print("{n} = {v}".format(n=name, v=str(value).replace('\n', '')))

>>> print_list("t2", t2)
"t2 = [[ 7  8  9] [10 11 12]]"

当然,除以2规格

>>> print_list("t2", t2/2)
"t2 = [[ 3.5  4.   4.5] [ 5.   5.5  6. ]]"

答案 2 :(得分:0)

Q&安培; d:

t1 = np.array([[1,2,3],[4,5,6]])
t2 = np.array([[7,8,9],[10,11,12]])

for i, set in enumerate([t1,t2], 1):
   out = set/2
   print("t{} = {}".format(i, out))

有点干净

t1 = np.array([[1,2,3],[4,5,6]])
t2 = np.array([[7,8,9],[10,11,12]])

for name, set in zip(["t1", "t2"], [t1, t2]):
   out = set/2
   print("{} = {}".format(name, out))

更干净:

from collections import OrderedDict
sets = OrderedDict(
    t1=np.array([[1,2,3],[4,5,6]]),
    t2=np.array([[7,8,9],[10,11,12]])
    )

for name, set in sets.items():
   out = set/2
   print("{} = {}".format(name, out))

我可以继续用其他几种方法给这只猫上皮,但真的是#34;对#34;解决方案取决于真实的上下文和用例。

作为旁注:避免使用"设置"作为标识符,因为它将隐藏内置set类型。好吧,在三行函数中没有太多问题,但它仍然被认为是不好的(至少是有争议的)。