【问题标题】:creating nested lists in python using for loop使用for循环在python中创建嵌套列表
【发布时间】:2021-05-21 19:01:54
【问题描述】:

我的要求:[[R,88],[A,85],[S,78]]

我的代码:

n =int(input())
lst = []
for i in range(n):
    print("Enter Name " + str(i+1))
    lst.append([input()])
    for j in range(i,i+1):
        print("Enter Score " + str(j+1))
        lst.append([float(input())])
    
print(lst)

我的结果:[[R],[88],[A],[85],[S],[78]]

我想最好使用 for 循环来完成它,我知道使用列表理解和其他东西可能会有更简单的方法来完成它,但事实是我是编码新手,我还没有涵盖那些话题。如果有人能告诉我如何使用 for 循环,将不胜感激。

我是这个领域的新手,所以如果我没有遵循标准做法或不遵守规则,请提前道歉:p

【问题讨论】:

  • lst.append([float(input())]) 更改为lst[i].append(float(input())) ?
  • 是的,它有效! [['r', [98.0]], ['s', [82.0]]]。我如何摆脱分数周围的额外大括号?它应该类似于 [['r',98.0],['s'.82.0]]。非常感谢!!
  • 请注意,在我的第二个示例中,我没有任何方括号 [ ]
  • 抱歉,这是一个愚蠢的问题,感谢您的帮助!你是个了不起的人!

标签: python for-loop nested-loops nested-lists


【解决方案1】:

您需要在循环内创建一个列表并将两个值附加到其中,并最终将它们附加到更大的列表中。此外,您将每个元素附加为列表值,在获取输入时也应删除方括号,同样:

n =int(input())
lst = []
for i in range(n):
    sub_lst = []
    print("Enter Name " + str(i+1))
    sub_lst.append(input())
    for j in range(i,i+1):
        print("Enter Score " + str(j+1))
        sub_lst.append(float(input()))
    lst.append(sub_lst)

print(lst)

输出:

[[R,88.0],[A,85.0],[S,78.0]]

【讨论】:

  • 是的,它有效! cmets 中的某人建议添加 lst[i].append(float(input())) 并且也可以完成这项工作
  • 哦.. 太棒了!
【解决方案2】:

您所问的情况可以简单地使用单循环而不嵌套循环来实现,请找到下面的代码,

注意:如果内部列表中需要多个 (> 2) 列表元素,则需要嵌套代码。如果您需要多个元素,请在评论中告诉我,以便我可以帮助解决嵌套循环的情况

n =int(input("Enter the number of entries : "))
outer_list = []
for i in range(n):
    name = input("Enter Name " + str(i+1) + " : ")
    score = input("Enter Score " + str(i+1) + " : ")
    inner_list = [name, int(score)] # Change int to float if required
    outer_list.append(inner_list)
    
print(outer_list)

输出:

[['R', 88], ['A', 85], ['S', 78]]

【讨论】:

    猜你喜欢
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 2019-04-23
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    相关资源
    最近更新 更多