【问题标题】:call specific elements in a list with for-each loop, function definition and if-else-elif statements使用 for-each 循环、函数定义和 if-else-elif 语句调用列表中的特定元素
【发布时间】:2018-02-18 07:31:37
【问题描述】:

抱歉,如果标题措辞不当。一年级学生目前正在学习一个侧重于 Python 概念的单元。

如何使用函数定义、for_each 循环、函数定义和 if-else-elif 语句调用列表中的特定元素(如果这是它的术语)。

说这是我的清单:

data_sets = [
    ['0', ['1', '2', '3']],
    ['4', ['5', '6', '7']]]

说这是我的函数定义:

def example(dataset):
    for element in dataset:
        if '1' in dataset:
            return 'Yeah!'
        else:
            return 'Nope!'

我不明白为什么它不返回“是的!”当我输入 data_sets[0] 时。我知道 data_sets[0][1] 确实返回“是的!”但我只想使用一个方括号 ([0]) 而不是两个 ([0][1]) 来返回“是的!”

example(data_sets[0])
#'Nope!'

我打算做一个使用不同数字等的练习,它说我应该能够用一个方括号 ([0]) 做到这一点,但我不知道怎么做。我们没有被告知要为函数定义、每个循环和 if-else 语句做什么,但我们得到了列表,并且我们应该用一个方括号来做类似的事情。所以这可能意味着我可能正在为每个循环和 if-else 语句进行函数定义。

抱歉,如果我使用了不正确的术语或行话,因为我只是一个初学者。

【问题讨论】:

    标签: python list function loops if-statement


    【解决方案1】:

    列表['0', ['1', '2', '3']]两个元素组成:'0'['1', '2', '3']。他们都不是'1'。所以,'1' 不在data_sets[0] 中。但是,['1', '2', '3'] 具有三个元素,其中之一是 '1'。所以,'1'data_sets[0][1] 中。您可以先展平列表(如Making a flat list out of list of lists in Python 中所述),然后检查'1' 是否在展平列表中。

    【讨论】:

      【解决方案2】:

      ['0', ['1', '2', '3']] 有一个字符串和一个列表。您想检查字符串'1' 是否在列表中,但是列表中唯一的字符串是'0'。这就是它返回nope 的原因。这两个元素都不是'1'

      【讨论】:

        【解决方案3】:

        试试这个,首先你需要用列表理解来展平你的列表,然后检查

        def example(dataset):
            dataset = [item for sublist in dataset for item in sublist]
            for element in dataset:
                if '1' in dataset:
                    return 'Yeah!'
                else:
                    return 'Nope!'
        

        现在,当您尝试编写代码时:这是输出:

        In [18]: example(dataset[0])
        Out[18]: 'Yeah!'
        

        【讨论】:

          【解决方案4】:

          您可以使用any 检查数据集中是否有任何元素包含1

          def example(dataset):
              for element in dataset:
                  if any('1' in x for x in dataset):
                      return 'Yeah!'
                  else:
                      return 'Nope!'
          
          data_sets = [
              ['0', ['1', '2', '3']],
              ['4', ['5', '6', '7']]]
          
          print(example(data_sets[0]))
          # Yeah!
          

          它之所以有效,是因为 Python 字符串是可迭代的。请注意,example('123') 也会返回 Yeah!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多