将一个列表条件填充到另一个关于值的列表条件



>我有以下问题。我有 3 个列表,如下所示。

带有部门名称的列表:Department_List = ["Department_1", "Department_2"] len("Department_List") = 2

包含类别名称的列表:Category_List = ["Cat_1","Cat_3","Cat_1","Cat_2",....... ,"Cat_5"] len("Category_List ") = 10000

空列表子类别:SubCategory_List = []

我必须执行的任务如下。我想用Department_List中的值随机填充SubCategory_List。问题是我希望Category_List中的相同元素具有相同的部门名称值。

例如,如果 Cat_1 = Department_1, Cat_3 = Department_2,Cat_2 = Department_2,Cat_5 = Department_1:

SubCategory_List = ["Department_1","Department_2","Department_1","Department_2",....... ,"Department_1"]

通知。我一定不能用字典来做!

谢谢!

这对你有用吗

SubCategory_List = []
Department_List = ["Department_1", "Department_2"]
mydict = dict(SubCategory_List = Department_List )
print(mydict)

输出

{'SubCategory_List': ['Department_1', 'Department_2']}
<小时 />

更新

import random
SubCategory_List = []
Category_List = ["Cat_1","Cat_3","Cat_1","Cat_2","Cat_5"]
Department_List = ["Department_1", "Department_2"]
mydict = dict(SubCategory_List = {x:random.choice(Department_List) for x in Category_List})
print(mydict)

输出

{'SubCategory_List': {'Cat_1': 'Department_2', 'Cat_3': 'Department_1', 'Cat_2': 'Department_2', 'Cat_5': 'Department_2'}}

第二次运行:

{'SubCategory_List': {'Cat_1': 'Department_1', 'Cat_3': 'Department_1', 'Cat_2': 'Department_1', 'Cat_5': 'Department_2'}}

这应该有效:

Department_List = ["Department_1", "Department_2"]
Category_List = ["Cat_1", "Cat_3", "Cat_1", "Cat_2", "Cat_5"]
sublist = {'SubCategory_List': [j for j in Department_List for i in Category_List if i[-2:] == j[-2:]]}
print(sublist)

结果:

{'SubCategory_List': ['Department_1', 'Department_1', 'Department_2']}

要用 Department_List 中的值随机填充SubCategory_List,长度为len(Category_List),您可以尝试以下操作:

import random
Department_List = ["Department_1", "Department_2"]
Category_List = ["Cat_1","Cat_3","Cat_1","Cat_2","Cat_5"]

SubCategory_List = [Department_List[random.randint(0,1)] for i in Category_List]
print(SubCategory_List)

输出:

['Department_1', 'Department_2', 'Department_2', 'Department_2', 'Department_2']

如果你想用你说的值填充基于给定字典的SubCategory_List,(Cat_1 = Department_1, Cat_3 = Department_2, Cat_2 = Department_2 and Cat_5 = Department_1(,你可以试试这个:

Department_List = ["Department_1", "Department_2"]
Category_List = ["Cat_1","Cat_3","Cat_1","Cat_2","Cat_5"]
dct={'Cat_1':'Department_1', 'Cat_3':'Department_2', 'Cat_2':'Department_2', 'Cat_5': 'Department_1'}
SubCategory_List = [dct[i] for i in Category_List]
print(SubCategory_List)

输出:

['Department_1', 'Department_2', 'Department_1', 'Department_2', 'Department_1']

如果要随机创建该字典,可以尝试以下操作:

import random
#Create the dictionary randomly\
Department_List = ["Department_1", "Department_2"]
Category_List = ["Cat_1","Cat_3","Cat_1","Cat_2","Cat_5"]
dct={i:Department_List[random.randint(0,1)] for i in Category_List}
print(dct)
SubCategory_List = [dct[i] for i in Category_List]
print(SubCategory_List)

输出:

dct
>>>{'Cat_1': 'Department_2', 'Cat_3': 'Department_2', 'Cat_2': 'Department_1', 'Cat_5': 'Department_1'}
SubCategory_List
>>>['Department_2', 'Department_2', 'Department_2', 'Department_1', 'Department_1']

最新更新