Python 在random.choices()中使用索引[0]

Python 在random.choices()中使用索引[0],python,random,Python,Random,在random.choices()中使用[0]的目的是什么?[0]是否参考了下面示例代码中的列表索引或其子列表索引?如果我使用[0],我会从列表中获得一个随机单词,这是期望的结果,但是如果我省略[0],它会给出随机子列表及其所有元素 为什么这两种情况的结果不同 如果我尝试[1]而不是[0],代码会给出 索引错误:索引超出范围 但如果我使用[0]或[-1],则代码会给出所需的结果 import random Animals = ["Cat", "Dog", "Lion", "Tiger", "E

random.choices()
中使用
[0]
的目的是什么?
[0]
是否参考了下面示例代码中的
列表索引或其子列表索引?如果我使用
[0]
,我会从列表中获得一个随机单词,这是期望的结果,但是如果我省略
[0]
,它会给出随机子列表及其所有元素

为什么这两种情况的结果不同

如果我尝试
[1]
而不是
[0]
,代码会给出

索引错误:索引超出范围

但如果我使用
[0]
[-1]
,则代码会给出所需的结果

import random

Animals = ["Cat", "Dog", "Lion", "Tiger", "Elephant"]
Fruits = ["Apple", "Orange", "Banana", "Mango", "Pineapple"]
Vegetables = ["Tomato", "Potato", "Onion", "Brinjal", "Peas"]

Lists = [Animals, Fruits, Vegetables]

word = random.choice(random.choices(Lists)[0])

print(word)

您使用的是
random.choices
而不是
random.choice
,后者返回一个包含单个元素而不是元素本身的列表。请看这里:

In [3]: random.choices("abc")
Out[3]: ['a']

In [4]: random.choice("abc")
Out[4]: 'b'
对其调用
[0]
将返回元素,而
[1]
超出范围,因为只有一个元素。您可能想使用
random.choice
(不带s),对吗


顺便说一句,是Python 3.6+。

您使用的是
random.choices
而不是
random.choice
,后者返回一个包含单个元素而不是元素本身的列表。请看这里:

In [3]: random.choices("abc")
Out[3]: ['a']

In [4]: random.choice("abc")
Out[4]: 'b'
对其调用
[0]
将返回元素,而
[1]
超出范围,因为只有一个元素。您可能想使用
random.choice
(不带s),对吗


顺便说一句,是Python 3.6+。

你的问题很不清楚。显然,做两件不同的事情会给你带来两种不同的结果,为什么你会期望相反的结果呢?你的问题很不清楚。显然,做两件不同的事情会得到两种不同的结果,为什么你会期望其他结果呢?为了澄清@gurpret:
[-1]
是最后一个元素的索引。因为只有一个元素,所以第一个元素也是最后一个元素。感谢所有人,特别是@Felix指出了random.choice()和random.choices()之间的区别,其中random.choice()返回单个元素,random.choices()返回元素列表。要澄清@Gurpreet:
[-1]
是最后一个元素的索引。因为只有一个元素,所以第一个元素也是最后一个元素。感谢all,尤其是@Felix,为我指出了random.choice()和random.choices()之间的区别,其中random.choice()返回单个元素,random.choices()返回元素列表。