>我有以下问题。我有 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']