【问题标题】:Python return listPython 返回列表
【发布时间】:2018-05-22 05:28:52
【问题描述】:
class alexicon(object):

def __init__(self):
    self.directions = ['north', 'south', 'west', 'east', 'up', 'down']
    self.items = []

def scan(self, words):
    self.word = words.split()
    # direction
    self.direction_word = [i for i in self.word if i in self.directions]
    self.direction_list = []
    for x in self.direction_word:
        self.direction_list.append(('direction', '%s' %(x)) )
    if self.direction_list != []:
        self.items.extend(self.direction_list)
    else:
        pass
   return self.items

lexicon = alexicon()
result = lexicon.scan('north')
print result

为什么打印结果是“无”?我怎样才能得到物品清单? 但是如果我打印 lexicon.items 我可以获得正确的列表(该列表中有元素)。

【问题讨论】:

  • 修正缩进。
  • 对我来说看起来不错。返回包含元素的列表:- [('direction', 'north')],假设缩进是正确的。

标签: python python-3.x python-2.7 class object


【解决方案1】:

您需要更改缩进:

class alexicon(object):

    def __init__(self):
        self.directions = ['north', 'south', 'west', 'east', 'up', 'down']
        self.items = []

    def scan(self, words):
        self.word = words.split()
# direction
        self.direction_word = [i for i in self.word if i in self.directions]
        self.direction_list = []
        for x in self.direction_word:
            self.direction_list.append(('direction', '%s' %(x)) )
        if self.direction_list != []:
            self.items.extend(self.direction_list)
        else:
            pass
        return(self.items)

lexicon = alexicon()
result = lexicon.scan('north')
print(result)

输出:

[('direction', 'north')]

【讨论】:

  • @J.Zeng:这是你期待的吗?
  • 谢谢。这是我的代码的一部分。当我运行这部分时,我得到了正确的列表..
  • 所以问题出在另一部分..我会找出来的..再次感谢您。
  • @J.Zeng:你得到了想要的答案。请接受确认
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多