如何返回列表中项目的第一个索引?

时间:2016-10-29 18:29:20

标签: python python-3.x

学习Python并负责返回列表中第一个字母的索引位置。但它必须在任何给定列表的左上角部分。例如' a'将作为索引返回(0,2)。

当我运行我的代码时,它说这封信还没有找到。假设Value代表字母和'。'已在测试仪中定义。如果它是' ,它应该返回no

var postSchema = new mongoose.Schema({
  raidName: String,
  raidDate: String,
  raidTime: String,
  raidFaction: String,
  whosGoing: { type: Array, "default": []}
});


var realmSchema = new mongoose.Schema({
  realmName: String,
  posts: [postSchema]
});

3 个答案:

答案 0 :(得分:1)

我想你想要这样的东西:

def find_spot_values(value,area):
  for row_idx, row in enumerate(area):
      if value in row:
          return (row_idx, row.index(value))

答案 1 :(得分:1)

我修改了你的功能,现在它可以工作:

area1 = [['.',  'a',    'a',    'D',    'D'], ['.', '.',    'a',    '.',    '.'], ['A', 'A',    '.',    'z',    '.'], ['.', '.',    '.',    'z',    '.'], ['.', '.',    'C',    'C',    'C']]
def find_spot_values(value,area):
    # Loop through the rows, id_row contains the index and row the list
    for id_row, row in enumerate(area):# Looks at rows in order
        # Loop through all elements of the inner list
        for idx, letter in enumerate(row):
            if value == letter: #If strings are equal to one another
                return (id_row, idx)
    # We returned nothing yet --> the letter isn't in the lists
    return None
print(find_spot_values('D',area1))

这将返回一个带有'坐标'的元组。或None,如果value中没有area

在内部循环中,您也可以使用index()函数。在这种情况下,如果列表中没有包含该字母,则必须处理异常。

答案 2 :(得分:1)

对代码进行最少的更改

def find_spot_values(value, area):
    for row in area:  # Looks at rows in order
        for letter in row:  # Looks at letter strings
            if value == letter:  # If strings are equal to one another
                return area.index(row), row.index(letter)  # Identifies indices