我可以让我的程序在列表中的变量(所有整数)之间随机选择,并返回变量而不是值吗?

2024-04-26 00:22:19 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个变量列表(都是整数)。我想随机选择这些变量中的一个,但使其返回实际变量,而不是值

例如:

list = [a, b, c, d]

(全部等于0)

print(random.choice(list)) 

将返回0,而我希望它返回a、b、c或d

因此,如果我写:

random.choice(list) += 2

它将更新其中一个变量


2条回答

您可以改为随机抽样索引,然后使用它来变异元素

>>> import random
>>> values = [3, 6, 8, 2]
>>> values[random.choice(range(len(values)))] += 2
>>> values
[3, 6, 8, 4]

对于python,有一些内置的名称不应该被重新封装,列表恰好是这些术语之一。我想你用它来回答这个问题,但我还是想说出来,因为当我开始的时候,它让我头疼,我不知道到底是怎么回事

听起来你在问我如何增加列表的索引

如果您有一个列表:

nums = [1, 2, 3, 4]
# or
zeroes = [0, 0, 0, 0]

您可以通过以下操作更改任何索引:

# nums before being changed:
# [1, 2, 3, 4]
nums[2] += 10  # change 2nd index of the list
# nums after being changed:
# [1, 2, 13, 4]

如果随机更改列表的索引,则需要获得介于0和列表最大索引之间的随机索引。 使用随机软件包,您可以执行以下操作:

import random

nums = [1, 2, 3, 4]

idx = random.randint(0, len(nums) - 1)

nums[idx] += 10

print(nums)

您需要从长度中减去1,否则它有时会返回大于列表长度的索引1

示例输出:

[11, 2, 3, 4]

[1, 2, 13, 4]

[1, 2, 3, 14]

相关问题 更多 >

    热门问题