我有一个类似于以下的列表
func deleteAction(at indexPath : IndexPath) -> UIContextualAction {
let action = UIContextualAction(style: .destructive, title: "Delete") { (action, view, completion) in
let vinyl = self.vinyls[indexPath.row]
guard let userID = Auth.auth().currentUser?.uid else { fatalError() }
Database.database().reference().child("vinyls").child(userID).removeValue(completionBlock: { (error, _) in
<#code#>
})
}
}
我可以一个一个地指定列表名称,如下所示。
list1 = ['mike', 'sam', 'paul', 'pam', 'lion']
等等。不是在列表中指定名称以创建新列表并追加,而是如何从list1中获取项目并在此处为列表1中的所有项目的for循环行中自动创建列表?
for item in list1:
for item in line:
mikelist = []
mikelist.append()
for item in list1:
for item in line:
samlist = []
samlist.append()
for item in list1:
for item in line:
paullist = []
paullist.append()
答案 0 :(得分:2)
创建一个字典,名称作为键,列表作为值:
dict = {}
list1 = ['mike', 'sam', 'paul', 'pam', 'lion']
for i in list1:
dict[i] = []
print(dict)
输出:
{'mike': [], 'lion': [], 'paul': [], 'sam': [], 'pam': []}
然后您可以像这样使用它:
dict['mike'].append('blah')
print(dict['mike'])
答案 1 :(得分:0)
它看起来更像是字典的工作。这样的事情会起作用:
names = ['mike', 'sam', 'paul', 'pam', 'lion']
persons = dict(zip(names, [[]] * len(names)))
结果如下:
>>> persons
{'mike': [], 'sam': [], 'paul': [], 'pam': [], 'lion': []}
>>>
现在您可以使用以下内容填充每个列表:
fruits = ['banana', 'orange', 'apple']
for person in persons:
persons[person].append(fruits)
答案 2 :(得分:0)
dictionary对于此问题似乎很有帮助。字典具有键值对,其中键可以是列表的每个名称,而 values 可以是每个名称的列表。
例如:
dict = {}
list1 = ['mike', 'sam', 'paul', 'pam', 'lion']
for name in list1:
dict[name] = []
print(dict)
输出:
{'mike':[],'lion':[],'paul':[],'sam':[],'pam':[]}
答案 3 :(得分:0)
我高度 高度不建议使用此方法,而应使用字典。但是,如果您坚持走这条路,这将是您达到预期效果的方式。
for name in list1:
globals()['{}list'.format(name)] = [name]
print(mikelist)
# ['mike']
print(pam)
# ['pamlist']