这是我的代码:
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
,但似乎不起作用。
答案 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中添加换行符。