Here is a different approach: instead of attaching the data as an argument to the signal handler, attach it to the menu-item itself. This offers much greater flexibility, because the data is not hidden inside an anonymous function, and so can be accessed by any part of the application.
It is very easy to implement, because Qt already provides the necessary APIs. Here is what your example code would look like if you took this approach:
for j in range(0, len(self.InputList)):
arrow = QtGui.QPushButton(self)
arrow.setGeometry(QtCore.QRect(350, 40*(j+3)+15, 19, 23))
menu = QtGui.QMenu(self)
group = QtGui.QActionGroup(menu)
for element in SomeList:
action = menu.addAction(element)
action.setCheckable(True)
action.setActionGroup(group)
action.setData(j)
arrow.setMenu(menu)
group.triggered.connect(self.SomeFunction)
def SomeFunction(self, action):
print(action.data())