Python|将列表转换为列表列表
给定一个字符串列表,编写一个Python程序将给定列表的每个元素转换为一个子列表。因此,将整个列表转换为列表列表。
例子:
Input : ['alice', 'bob', 'cara']
Output : [['alice'], ['bob'], ['cara']]
Input : [101, 202, 303, 404, 505]
Output : [[101], [202], [303], [404], [505]]
方法#1:朴素的方法
使用另一个列表“res”和一个 for 循环。使用Python的split()方法,我们以列表本身的形式从列表中提取每个元素,并将其附加到“res”。最后,返回“res”。这种方法的一个缺点是它不适用于整数列表,因为'int'对象没有属性'split'。
# Python3 program to convert
# list into a list of lists
def extractDigits(lst):
res = []
for el in lst:
sub = el.split(', ')
res.append(sub)
return(res)
# Driver code
lst = ['alice', 'bob', 'cara']
print(extractDigits(lst))
输出:
[['alice'], ['bob'], ['cara']]
方法#2:列表理解
列表理解是一种有效的方法,因为它不使用额外的空间。对于列表中的每个元素“el”,它只是将 [el] 附加到输出列表中。
# Python3 program to convert
# list into a list of lists
def extractDigits(lst):
return [[el] for el in lst]
# Driver code
lst = ['alice', 'bob', 'cara']
print(extractDigits(lst))
输出:
[['alice'], ['bob'], ['cara']]
方法#3: Python map()
给定的代码为给定的可迭代“lst”的每个项目映射函数el:[el]。因此,将每个元素作为列表本身输出。
# Python3 program to convert
# list into a list of lists
def extractDigits(lst):
return list(map(lambda el:[el], lst))
# Driver code
lst = ['alice', 'bob', 'cara']
print(extractDigits(lst))
输出:
[['alice'], ['bob'], ['cara']]