簡體   English   中英

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

[英]Use of index [0] in random.choices()

random.choices()中使用[0]的目的是什么? 在下面的示例代碼中, [0]是否引用Lists或其子列表的索引? 如果使用[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),對嗎?

順便說一句, random.choices是Python 3.6+。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM