【问题标题】:Get specific index of value in python start with 1在python中获取特定的值索引以1开头
【发布时间】:2021-10-30 22:30:15
【问题描述】:
def print_factors(x):
    arr = []
    for i in range(1, x+1):
        if x % i == 0:
            arr.append(i)
    for index, value in enumerate(arr, start = 1):
        print(index, value)

num = 10
print_factors(num)

Output :
1 1
2 2
3 5
4 10

现在我想要特定的索引值。 例子: 输入 3,输出为 5; 输入4,输出10;

请帮助清除我的逻辑。

【问题讨论】:

  • 你需要在这里更具体
  • 列表索引从 0 开始。如果输入从 1 开始的索引,则必须减去 1 才能获得列表的内部从 0 开始的索引。有什么问题?

标签: python indexing


【解决方案1】:

如果我明白你的问题...

def get_factors(x):
    arr = []
    for i in range(1, x+1):
        if x % i == 0:
            arr.append(i)
    return arr

factors = get_factors(10)
num = 4
print(num, factors[num-1]) 

更复杂...

def get_factors(x):
    return [i for i in range(1, x+1) if x % i == 0]

factors = get_factors(10)
num = 4
print(num, factors[num-1]) 

【讨论】:

    【解决方案2】:

    如果您希望能够输入索引来检查数组中的值,只需返回数组以便获取值。我们可以从数组中输入我们想要的任何索引来获取值。

    def print_factors(x):
        arr = []
        for i in range(1, x+1):
            if x % i == 0:
                arr.append(i)
        #print(arr)
        for index, value in enumerate(arr, start = 1):
            print(index, value)
        return arr
    
    num = 10
    arr = print_factors(num)
    print(arr[2]) # what is index 2!
    

    这可能是一种更好的写法。有一个构建数组的函数,还有一个可以打印因子和索引的函数

    def build_factors(x):
        arr = []
        for i in range(1, x+1):
            if x % i == 0:
                arr.append(i)
        return arr
    
    def print_factors(arr):
        for index, value in enumerate(arr, start = 1):
            print(index, value)
    
    num = 10
    arr_factors = build_factors(num)
    
    print_factors(arr_factors)
    print(arr_factors[2]) # what is index 2!
    

    【讨论】:

      猜你喜欢
      • 2014-02-27
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 2023-01-19
      • 1970-01-01
      相关资源
      最近更新 更多