Python 如何将列表中的字符串转换为单个列表?

Python 如何将列表中的字符串转换为单个列表?,python,list,Python,List,考虑一下,我有一份清单 subjects = ['subject1', 'subject2', 'subject3', 'subject4', 'subject5'] 如何将这些单独的列表元素转换为单独的列表 subject1 = [ ] subject2 = [ ] subject3 = [ ] subject4 = [ ] subject5 = [ ] 如果使用Dictionary,可以执行以下操作: dictionnary = dict((s, []) for s in subjec

考虑一下,我有一份清单

subjects = ['subject1', 'subject2', 'subject3', 'subject4', 'subject5']
如何将这些单独的列表元素转换为单独的列表

subject1 = [ ]
subject2 = [ ]
subject3 = [ ]
subject4 = [ ]
subject5 = [ ] 

如果使用Dictionary,可以执行以下操作:

dictionnary = dict((s, []) for s in subjects)
my_list = dictionnary['subject1']
my_list.append(5)
print(dictionnary['subject1'] == [5]) # True

# Or also
dictionnary['subject1'].append(5)
您可以通过执行以下操作访问列表:

dictionnary = dict((s, []) for s in subjects)
my_list = dictionnary['subject1']
my_list.append(5)
print(dictionnary['subject1'] == [5]) # True

# Or also
dictionnary['subject1'].append(5)

如果使用Dictionary,可以执行以下操作:

dictionnary = dict((s, []) for s in subjects)
my_list = dictionnary['subject1']
my_list.append(5)
print(dictionnary['subject1'] == [5]) # True

# Or also
dictionnary['subject1'].append(5)
您可以通过执行以下操作访问列表:

dictionnary = dict((s, []) for s in subjects)
my_list = dictionnary['subject1']
my_list.append(5)
print(dictionnary['subject1'] == [5]) # True

# Or also
dictionnary['subject1'].append(5)
然后,
ret

{'subject1': [], 'subject2': [], 'subject3': [], 'subject4': [], 'subject5': []}
--编辑--

正如@Anand所说,所有的值都是相同的列表引用。为了避免这种情况,有一种解决方法:

ret = {k: [] for k in subjects}
然后,
ret

{'subject1': [], 'subject2': [], 'subject3': [], 'subject4': [], 'subject5': []}
--编辑--

正如@Anand所说,所有的值都是相同的列表引用。为了避免这种情况,有一种解决方法:

ret = {k: [] for k in subjects}

如果您真正想要的是个人列表,而不是字典:

for subject in subjects:
    exec(subject + " = list()")

如果您真正想要的是个人列表,而不是字典:

for subject in subjects:
    exec(subject + " = list()")

你不应该用字典吗?你可能想用字典,是的
subjects={'subject1':[],'subject2':[],…}
然后使用例如
subjects['subject1'].append(42)
。看。你不应该用字典吗?你可能想用字典,是的
subjects={'subject1':[],'subject2':[],…}
然后使用例如
subjects['subject1'].append(42)
。请参阅。请注意,在此场景中,所有值都是相同的列表引用,因此附加或更改任何列表都会反映在所有其他列表中。@AnandSKumar感谢您的提醒。我编辑了我的答案。请注意,在这个场景中,所有的值都是相同的列表引用,因此附加或修改任何列表都会反映在所有其他列表中。@AnandSKumar谢谢提醒。我编辑了我的答案。