我需要以以下格式创建字典结构。
list_1 = [1,2,3,4,5]
list_2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
list_3 = random.sample(list_2 , random.randint(0,len(list_2))
循环为len(list_1),需要循环使用list_2,然后使用通过list_3创建的随机样本,在迭代时将list_3的每个值分配为下面的内部字典中的值。
*所需的字典格式:
my_dict = { 1: { 1: a,
2:b,
3,c},
2: { 1: 'd',
2: 'g'},
3: {1, 'e',
2, 'f',
3, 'g'}
.....
}*
我的代码:
list_1 = [1,2,3,4,5]
list_2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
list_4= []
j= 1
while i <= len(list_1):
list_3 = random.sample(list_2 , random.randint(0,len(list_2))
for k in list_3:
my_dict= { i: { j: k,
}
}
j+=1
i+=1
list_3 = random.sample(list_2 , random.randint(0,len(list_2))
list_4.append(my_dict)
每次对list_3进行迭代后,第j个值应递增,并继续添加新的第j个键+值(k) 在list_3的循环结束之后,应创建另一个示例列表(list_3),并且在新的ith键中重复上述示例列表,并将其添加到字典中。
如果没有人可以修复代码,我没有得到所需的结果,并且需要帮助。
谢谢!
答案 0 :(得分:0)
您将在循环的每次迭代中覆盖my_dict
。您只需要使用键i
添加新的下标:
list_1 = [1,2,3,4,5]
list_2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
my_dict = {}
for i in list_1:
list_3 = random.sample(list_2 , random.randint(0,len(list_2)))
my_dict[i] = dict(enumerate(list_3, 1))
答案 1 :(得分:0)
因此,您有一个keys
列表和一个values
列表,并且想要创建一个字典,其中每个key
都有一个条目,其中每个{{1 }}是一本字典,从key
中随机选择作为值和顺序数字键,从1开始。
values
此:
keys = [1, 2, 3, 4, 5]
values = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
result = {
k: {n: v
for n, v in enumerate(random.sample(values, random.randint(0, len(values))), 1)
}
for k in keys }
result= {}
中每个键k
的条目;
keys
result= {k: {} for k in keys}
{n: v for n, v in enumerate([], 1)}
的随机样本;
values
random.sample(values, _)
中的所有项目之间。
values
Python允许您直接将枚举转换为字典:
random.sample(random.randint(0, len(values)))
答案 2 :(得分:0)
您可以尝试以下操作:
ROW_NUMBER