【问题标题】:Taking in input in this specific way以这种特定方式接受输入
【发布时间】:2023-01-29 23:17:00
【问题描述】:

假设我们有以下输入:

3 
30 40
40 50
30 60

(第一个只是代表我们有多少行代码) 我想要一个列表,其中每个索引都是第二个输入。始终保证第一个数字的总和为 100,因此它将是一个大小为 100 的列表。 前任: [40, 40, 40, 40, (etc up to 30), 50, 50, 50 (Etc up to 40)] 等等。

我试过的代码是:

n = int(input()
record = [0] * 100
recordTrack = []
for i in range(n):
    recordTrack.append(list(map(int, input().split())))
    

for i in range(recordTrack[0][0]):
    record[i] = recordTrack[0][1]

for x in range(1, n):
    for i in range(recordTrack[x-1][0], recordTrack[x][0] + recordTrack[x-1][0]):
        record[i] = recordTrack[x][1]

【问题讨论】:

  • 您好,欢迎来到 StackOverflow!你的问题是什么?
  • 你好!谢谢你欢迎我。我试图从你在第一篇文章中看到的内容中获取一个输入,并试图将它变成一个列表,其中第一个数字是它出现的次数,第二个数字是元素。它们加起来应该都是 100,所以它应该是一个长度为 100 的列表。
  • 您想要的输出不清楚。
  • 是的,我对你的问题感到困惑
  • 你还没有问一个问题。也没有告诉我们您的代码是否有问题。

标签: python input


【解决方案1】:

代码:

n=int(input("Enter: "))
record1=[]
recordTrack=[]
for i in range(n):
    recordTrack.append(list(map(int,input().split())))

for time,ele in recordTrack:
    for _ in range(time):
        record1.append(ele)

#List Comprehension
record2=[ele for time,ele in recordTrack for _ in range(time)]

#print(recordTrack)   # [[30, 40], [40, 50], [30, 60]]
print(record1)
print(record2) #Same output as above

输出:

Enter: 3
30 40
40 50
30 60
[40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60]

【讨论】:

    猜你喜欢
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 2022-06-28
    • 2022-11-16
    相关资源
    最近更新 更多