用户为输入提供空格:
row = list(input())
print(row)
['1','2','3',' ','4','5','6',' ','7','8','9',' ']
所以我需要在下面创建“行”列表。该列表根据空格分为多个子列表:
[['1','2','3'],['4','5','6'],['7','8','9']]
答案 0 :(得分:4)
您可以使用str.split
来分隔空格:
myinput = '123 456 789'
row = list(map(list, myinput.split()))
print(row)
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]
或者,使用列表理解:
row = [list(i) for i in myinput.split()]
答案 1 :(得分:2)
您可以使用str.split
在空格处分割输入,以提供子字符串列表。
例如'123 456 789'
将变成['123', '456', '789']
。
然后使用list()
构造函数(如您所熟悉的),使用list-comprehension将这些字符串转换为字符列表。
制作最终代码:
row = [list(s) for s in input().split()]
#[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]
答案 2 :(得分:0)
从列表而不是字符串开始,可以使用itetools.groupby:
from itertools import groupby
row = ['1','2','3',' ','4','5','6',' ','7','8','9',' ']
out = [list(group) for key, group in groupby(row, lambda x: x != ' ') if key]
print(out)
# [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]
我们根据值是否为空格对它们进行分组,仅保留不由空格组成的组。
答案 3 :(得分:0)
尝试一下:
abc=['1','2','3',' ','4','5','6',' ','7','8','9',' ']
newList=list()
temp=list()
for i in abc:
if(i==' '):
newList.append(temp)
temp=list()
else:
temp.append(i)
print(newList)
输出:
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]