如何将元素从for循环打印到列表中?

时间:2019-03-06 17:15:06

标签: python

这是我的代码:

for y in range(5):
numbers = [random.randint(1, 10) for x in range(100)]  # generates 100 random numbers from 1-10
print(max(set(numbers), key=numbers.count))  # prints out one of which appeared the most

当我运行该代码时,输​​出为:

1
8
3
6
4

但是我希望输出为:1, 8, 3, 6, 4

我尝试将其追加到新列表中,但始终收到错误消息,提示“ int”没有属性“ append”。

我还尝试通过键入以下内容使其成为字符串:

new_list = str(max(set(numbers), key=numbers.count,但似乎不起作用。

6 个答案:

答案 0 :(得分:0)

尝试以下代码:

new = list()
for y in range(5):
    numbers = [random.randint(1, 10) for x in range(100)]  # generates 100 random numbers from 1-10
    new.append(str(max(set(numbers), key=numbers.count)))  # prints out one of which appeared the most
print new  # Prints whole list
print ", ".join(new) # Prints comma separated values in one line

输出:

['10', '8', '6', '8', '2']
10, 8, 6, 8, 2

答案 1 :(得分:0)

如果我正确理解了您要做什么,则希望在打印之前将打印结果整理到一个列表中。因此,您要做的就是创建一个新列表并将结果附加到该列表中。您可以只打印结果,但是如果要避免使用方括号,可以将结果转换为字符串,然后使用join()字符串函数

results = []
for y in range(5):
    numbers = [random.randint(1, 10) for x in range(100)]
    results.append(str(max(set(numbers), key=numbers.count)))
print(', '.join(results))

这给了我类似的输出

7, 2, 4, 3, 2

答案 2 :(得分:0)

要使输出实际上是水平的,请使用此:

for y in range(5):
numbers = [random.randint(1, 10) for x in range(100)]  # generates 100 random numbers from 1-10
print(max(set(numbers), key=numbers.count) , end =", ")

如果要在其他变量中使用输出,请使用以下命令:

for y in range(5): numbers = [(max(set(random.randint(1, 10),key=numbers.count))) for x in range(100)]  

答案 3 :(得分:0)

或者像这样

>>> x = [max(set(numbers), key=numbers.count) for numbers in [[random.randint(1, 10) for x in range(100)] for y in range(5)]]
>>> ', '.join(str(_) for _ in x)
>>> '2, 10, 7, 5, 8'

答案 4 :(得分:0)

在“ for”循环内,您需要将要添加的数字添加到列表中。为此,您需要在循环之前创建一个空列表:

numbers = []

然后,您的循环将是:

for y in range(5):
  numbers = [random.randint(1, 10) for x in range(100)]
  numbers.append(max(set(numbers), key=numbers.count))

然后,在循环之后,您可以正常打印列表:

#Prints your desired numbers.
vals = ""
for i in range(len(numbers)):
  vals = vals + numbers[i] + ", "
print(vals)

答案 5 :(得分:0)

尝试使用print(number, end=', ')。这将在字符串,后面附加一个字符串,而不是在stdout中添加换行符。