从列表中填充数据
Populate data from a list
我有一个包含以下项目的列表
l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5]
每一项都是11.1的倍数,列表长度为8。
我想生成另一个包含 30 个项目的列表,其值为 11.1、22.2、33.3、55.5
出现在原始列表中 l
.
我想知道如何将数据从列表 l
填充到 l_new
。
你可以使用random
模块来完成:
import random
l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5]
l_new = [random.choice(l) for _ in range(0, 30)]
print(l_new)
#OUTPUT:
#[11.1, 11.1, 22.2, 33.3, 22.2, 11.1, 33.3, 11.1, 55.5, 11.1, 33.3, 22.2, 55.5, 22.2, 22.2, 33.3, 11.1, 11.1, 33.3, 22.2, 33.3, 11.1, 11.1, 33.3, 22.2, 33.3, 33.3, 11.1, 33.3, 22.2]
l_new = random.choices(l, k=30)
print(l_new)
#OUTPUT:
#[11.1, 33.3, 33.3, 55.5, 33.3, 33.3, 55.5, 11.1, 22.2, 11.1, 55.5, 11.1, 11.1, 55.5, 22.2, 22.2, 22.2, 33.3, 11.1, 33.3, 55.5, 55.5, 33.3, 11.1, 11.1, 55.5, 22.2, 22.2, 11.1, 22.2]
第一个解决方案 l_new = [random.choice(l) for _ in range(0, 30)]
使用列表理解和 random.choice()
函数,每次迭代 select 来自 l
的一个项目。
第二个解决方案l_new = random.choices(l, k=30)
只需调用choices()
函数并让它生成列表,您必须指定k
,即select的元素数].
还有另一种方法需要 numpy
模块:
import numpy
l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5]
l_new = list(numpy.random.choice(l, size=30))
print(l_new)
#OUTPUT:
#[11.1, 33.3, 11.1, 22.2, 33.3, 22.2, 22.2, 33.3, 55.5, 33.3, 22.2, 33.3, 22.2, 55.5, 33.3, 33.3, 33.3, 55.5, 33.3, 11.1, 11.1, 11.1, 55.5, 11.1, 33.3, 33.3, 22.2, 22.2, 33.3, 22.2]
生成
我有一个包含以下项目的列表
l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5]
每一项都是11.1的倍数,列表长度为8。
我想生成另一个包含 30 个项目的列表,其值为 11.1、22.2、33.3、55.5
出现在原始列表中 l
.
我想知道如何将数据从列表 l
填充到 l_new
。
你可以使用random
模块来完成:
import random
l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5]
l_new = [random.choice(l) for _ in range(0, 30)]
print(l_new)
#OUTPUT:
#[11.1, 11.1, 22.2, 33.3, 22.2, 11.1, 33.3, 11.1, 55.5, 11.1, 33.3, 22.2, 55.5, 22.2, 22.2, 33.3, 11.1, 11.1, 33.3, 22.2, 33.3, 11.1, 11.1, 33.3, 22.2, 33.3, 33.3, 11.1, 33.3, 22.2]
l_new = random.choices(l, k=30)
print(l_new)
#OUTPUT:
#[11.1, 33.3, 33.3, 55.5, 33.3, 33.3, 55.5, 11.1, 22.2, 11.1, 55.5, 11.1, 11.1, 55.5, 22.2, 22.2, 22.2, 33.3, 11.1, 33.3, 55.5, 55.5, 33.3, 11.1, 11.1, 55.5, 22.2, 22.2, 11.1, 22.2]
第一个解决方案 l_new = [random.choice(l) for _ in range(0, 30)]
使用列表理解和 random.choice()
函数,每次迭代 select 来自 l
的一个项目。
第二个解决方案l_new = random.choices(l, k=30)
只需调用choices()
函数并让它生成列表,您必须指定k
,即select的元素数].
还有另一种方法需要 numpy
模块:
import numpy
l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5]
l_new = list(numpy.random.choice(l, size=30))
print(l_new)
#OUTPUT:
#[11.1, 33.3, 11.1, 22.2, 33.3, 22.2, 22.2, 33.3, 55.5, 33.3, 22.2, 33.3, 22.2, 55.5, 33.3, 33.3, 33.3, 55.5, 33.3, 11.1, 11.1, 11.1, 55.5, 11.1, 33.3, 33.3, 22.2, 22.2, 33.3, 22.2]
生成