Как напечатать цикл для функции без использования возврата в Python? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть программа на Python, которая получает значение из файла XML и сопоставляет его с заданным кодом, но я не знаю, как напечатать значение с некоторыми условиями.

Моя программа на Python:

class setMap(getXml):

    def __init__(self, event_log_row):
        self.event_log_row = event_log_row

    def code(self):
        for each in self.event_log_row:
            self.get_map(each)
        # if I use return here, it basically returns only one value, which is understandable.            

    def get_map(self, event_code):
        dict_class = getXml() # Getting XML from another class
        dictionary = dict_class.getdescription()
        for keys, values in dictionary.items():
            if keys == event_code:
                return values  

# I'm not allowed to use for loop or any conditions after this 
code = ['1011', '1015', '1013']
obj = setMap(code)
print(obj.code())

Можно ли достичь того, чего я намерен достичь, может кто-нибудь дать мне несколько советов, плз.

Спасибо

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Если вы получаете результат

result  = [["One","Two"],["Three"], ["Four","Five","Six"]]        # obj.code() result

от вашего setMap.code(), вы можете распечатать его, используя

result  = [["One","Two"],["Three"], ["Four","Five","Six"]]

print(*result, sep ="\n") # unpack outer list for printing 

print( *(b for a in result for b in a), sep ="\n") # flatten inner lists, unpack

, в результате чего

['One', 'Two']
['Three']
['Four', 'Five', 'Six']

One
Two
Three
Four
Five
Six

Вы указываетеСепаратор печати новой строки, чтобы получить их в разных строках, нет необходимости в строковом соединении.

Сведения о sep: Что означает печать (... sep = '', '\ t')? или Doku print ()

0 голосов
/ 23 мая 2018

Вы можете использовать список понимания :

    def code(self):
        return [self.get_map(each) for each in self.event_log_row]

[print(x) for x in obj.code()]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...