2013-05-17 5 views
3

У меня есть функция python, как показано ниже. Я хочу вызвать функцию в C# и передать 2 аргумента списка? Он возвращает ранжированный список. Это возможно и как? Спасибо за вашу помощьВызов функции python из C#

function ranking_option() #accepts two arguments: 
    def Ranking_Options(costs, savings): 
    ##Lets us form a list of list from the supplied data 

    rearranged_list = sorted([[costs[i], savings[i]] for i in range(len(costs))], reverse=False) 
    rankedlist = [rearranged_list[0]] #We form a new list of the ranked data coordinates 

    #Examine the sorted list one by one 
    for pair in rearranged_list[1:]: 

     if pair[0]>=rankedlist[-1][0] and pair[1]>=rankedlist[-1][1]: 
      rankedlist.append(pair) 
      if rankedlist[-2][0]==rankedlist[-1][0] and rankedlist[-2][1]<=rankedlist[-1][1]: 
       rankedlist[-2],rankedlist[-1]=rankedlist[-1],rankedlist[-2] 
     else: 

      if pair[0]==rankedlist[-1][0] and pair[1]>=rankedlist[-1][1]: 
       rankedlist[-1]=pair 
      rankedlist.append(pair) 
return rankedlist 
+0

Вы должны взглянуть на IronPython http://ironpython.net/ –

+1

Почему бы не переписать его на C#? Таким образом, вы можете вводить некоторые неприятные типы, а не полагаться на массивы все время. –

ответ

2

У меня есть сообщение в моем блоге о вызове COM-сервера Python с C#. Это должно помочь в том, что вы пытаетесь сделать. COM упростит взаимодействие, но для его настройки требуется немного работы. http://www.midniteblog.com/?p=64