【问题标题】:Inverse a function set in Python逆Python中的函数集
【发布时间】:2017-07-17 14:06:02
【问题描述】:

我在分配功能集时需要帮助。 我应该创建一个将函数集作为反函数集返回的方法。

一个函数集:

f = [[1,4],[2,5],[3,6]

应该返回:

fInv = [[4,1],[5,2],[6,3]]

这是我的代码:

def inverse(f):
  fInv = []
  for i in range(len(f)):
    count = len(f[0])
    for j in range(len(f[0])):
      fInv[i][j] = f[i][count]
      count-=1
    return fInv
  return None

f = [[1,4],[2,5],[3,6]]
print(inverse(f))  

运行时显示:

Traceback (most recent call last):
File "python", line 11, in <module>
File "python", line 5, in inverse
IndexError: list index out of range

我还是python编码的新手,所以请理解问题可能是一个简单的逻辑错误。

【问题讨论】:

  • count = len(f[0])。你是说len(f[0])-1
  • 感谢您让我知道这一点。我明白为什么。

标签: python function set variable-assignment


【解决方案1】:

试试list.reverse()方法:

反转列表中的元素,到位。

f = [[1,4],[2,5],[3,6]]
for i in f:
    i.reverse()

print f

输出:

[[4, 1], [5, 2], [6, 3]]

【讨论】:

  • 感谢您的提示。
【解决方案2】:

最简单的解决方案是使用列表推导解包每一对,然后以相反的顺序重新打包:

>>> f = [[1,4],[2,5],[3,6]]
>>> [[b, a] for [a, b] in f]
[[4, 1], [5, 2], [6, 3]]

【讨论】:

    猜你喜欢
    • 2017-07-11
    • 1970-01-01
    • 2015-09-24
    • 2012-04-23
    • 2013-11-04
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多