2024-10-01 13:35:15 发布
网友
假设您有一个字符串列表。你知道吗
lst = ['a','b17','c','dz','e','ff','e3','e66']
你想把这些字符串分离成单独的变量
a = lst[:7] b = lst[7:14] c = lst[14:21]
我想知道是否有一个pythonic的方式来处理这个问题,而不是花时间键入每一个列表拼接。你知道吗
可以使用生成器表达式生成切片,并将其解压为所需的变量:
a, b, c = (lst[i:i+7] for i in range(0, 21, 7))
但如果列表中的项目超过21个,则会产生无法解包的错误,因此最好使用列表理解将其保留为列表,而不是单个变量:
[lst[i:i+7] for i in range(0, len(lst), 7)]
尝试以下方法:
def f(lst,n): l=[] range_=list(range(0,len(lst),n)) for x,y in zip(range_,range_[1:]): l.append(lst[x:y]) return l print(f(lst,7))
输出lst为:
lst
lst = ['a','b17','c','dz','e','ff','e3','e66']*5
是:
[['a', 'b17', 'c', 'dz', 'e', 'ff', 'e3'], ['e66', 'a', 'b17', 'c', 'dz', 'e', 'ff'], ['e3', 'e66', 'a', 'b17', 'c', 'dz', 'e'], ['ff', 'e3', 'e66', 'a', 'b17', 'c', 'dz'], ['e', 'ff', 'e3', 'e66', 'a', 'b17', 'c']]
可以使用生成器表达式生成切片,并将其解压为所需的变量:
但如果列表中的项目超过21个,则会产生无法解包的错误,因此最好使用列表理解将其保留为列表,而不是单个变量:
尝试以下方法:
输出
lst
为:是:
相关问题 更多 >
编程相关推荐