正确打印列表条目剂量格式

时间:2019-02-07 14:47:57

标签: python

我对此有疑问

def randomrecipes():
print (random.sample(listofrecipes, 1))
mainmenu()


listofrecipes = [monday, tuesday, wednsday, thursday, friday, saturday, sunday]

食谱的格式设置如下(只需忽略挪威胡言乱语)。

monday"""
1 l kjøttkraft /buljong eller lettsaltet vann
750 g rå potet
300 g kokt potet
3 dl byggmel
2 ss hvetemel
1 ts salt
"""

当我只打印它时,它带有保留的空白,但是从randomrecipes我得到了:

['\n1 l kjøttkraft /buljong eller lettsaltet vann\n750 g rå potet\n300 g kokt potet\n3 dl byggmel\n2 ss hvetemel\n1 ts salt\n']

我正在尝试自己学习,并且刚刚入门,如果这是一个愚蠢的问题,对不起。谢谢。

3 个答案:

答案 0 :(得分:0)

您使用的random.sample(iterable, k)总是返回一个长度为k或在您的情况下为1的列表。因此,您要打印的对象是一个字符串列表。

您可以更改行

print (random.sample(listofrecipes, 1))

类似

print(random.sample(listofrecipes,1)[0])  # note the [0]

这将返回列表中的 first 元素(碰巧是唯一的元素)。

更清洁的解决方案可能是使用random.choice(iterable)。它总是返回一个选择,而不是列表。它实际上与上面的行等效,但是更清楚了。

答案 1 :(得分:0)

random.sample returns a list,这正是您所得到的。此输出就是列表格式的方式。如果要从此列表中提取字符串,请执行以下操作:

random.sample(listofrecipes, 1)[0]

答案 2 :(得分:0)

random.sample的输出是一定长度的列表,在这种情况下为1。打印此文件时,您会看到显示列表(包括换行符\n字符)时生成的输出。

print(random.sample(listofrecipes, 1)[0])

将打印出字符串,这是列表的第一个元素,它将在多行中恢复原始显示。