列表拼接变量分配自动化

时间:2018-12-21 00:24:43

标签: python python-3.x list variable-assignment

想象一下,您有一个字符串列表。

lst = ['a','b17','c','dz','e','ff','e3','e66']

您要将这些字符串分成单独的变量

a = lst[:7] b = lst[7:14] c = lst[14:21]

我想知道是否有一种Python的方式来处理此问题,而不是花时间键入每个列表拼接。

2 个答案:

答案 0 :(得分:2)

您可以使用生成器表达式生成切片并将其解压缩为所需的变量:

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)]

答案 1 :(得分:1)

尝试此方法:

[Fri 21 Dec 00:28:26] PS C:\WINDOWS\system32>$date1

11 December 2018 10:20:00

[Fri 21 Dec 00:30:01] PS C:\WINDOWS\system32>$date2

11 December 2018 12:00:00

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 = ['a','b17','c','dz','e','ff','e3','e66']*5