【问题标题】:Find the index of a value/char without using any list methods在不使用任何列表方法的情况下查找值/字符的索引
【发布时间】:2018-05-15 04:15:26
【问题描述】:
def find(my_list, value):
    find = -1
    for i in range(length(my_list)):
        if my_list[i] == value:
            find += 1     
    return find

def length(my_list):
    list_length = 0
    for char in my_list:
        list_length += 1
    return list_length

str_list1 = ['r', 'i', 'n', 'g', 'i', 'n', 'g']

print("\nfind Test")

print(list_function.find(str_list1, 'g'))

print(list_function.find(str_list1, 'z'))

输出是 0 和 -1,而我们正在寻找 3 和 -1。

需要在不使用内置方法的情况下创建它。

【问题讨论】:

  • 这个问题非常模糊,并没有提供任何真实信息供我们帮助... my_list 的内容或价值是什么?你为什么期待 3 和 -1 返回?你想达到什么目的?
  • print("\nfind Test") print(list_function.find(str_list1, 'g')) print(list_function.find(str_list1, 'z'))
  • 仍然不清楚 str_list1 是什么?
  • str_list1 = ['r', 'i', 'n', 'g', 'i', 'n', 'g']
  • 我们检查的值是“g”和“z”

标签: python list indexing


【解决方案1】:

使用enumerate:

def find(my_list, value):
    for index, element in enumerate(my_list):
        if element == value:
            return index
    return -1

print(find(['r', 'i', 'n', 'g', 'i', 'n', 'g'], 'g'))
# 3

print(find(['r', 'i', 'n', 'g', 'i', 'n', 'g'], 'z'))
# -1

如果您不需要使用内置插件,这是一种方法:

def find(my_list, value):
    index = 0
    for element in my_list:
        if element == value:
            return index
        index += 1
    return -1

print(find(['r', 'i', 'n', 'g', 'i', 'n', 'g'], 'g'))
# 3

print(find(['r', 'i', 'n', 'g', 'i', 'n', 'g'], 'z'))
# -1

【讨论】:

  • 可以用length命令完成吗,因为我不能使用任何内置方法?请帮帮我
  • 但是你使用了range。它也是内置的。没有length 命令。你的意思是len(list) 但这又是一个列表函数。 ://
  • 使用一个名为 length 的预定义函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 2010-12-20
  • 2011-05-10
  • 1970-01-01
  • 2020-03-26
  • 2022-01-21
相关资源
最近更新 更多