yan*_*234 2 python list python-3.x
我在python 3中有以下代码:
x = [(''.join(random.choices(string.ascii_lowercase, k=7))) for _ in range(5)]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来初始化具有不同K值和范围()的多个(5+)列表?
例如:
y = [(''.join(random.choices(string.ascii_lowercase, k=3))) for _ in range(5)]
z = [(''.join(random.choices(string.ascii_lowercase, k=7))) for _ in range(2)]
a = [(''.join(random.choices(string.ascii_lowercase, k=4))) for _ in range(3)]
b = [(''.join(random.choices(string.ascii_lowercase, k=3))) for _ in range(5)]
c = [(''.join(random.choices(string.ascii_lowercase, k=1))) for _ in range(3)]
Run Code Online (Sandbox Code Playgroud)
将列表理解放在函数中并重复使用:
def func(k, r):
return [(''.join(random.choices(string.ascii_lowercase, k=k))) for _ in range(r)]
Run Code Online (Sandbox Code Playgroud)
y = func(3, 5)
...
c = func(1, 3)
Run Code Online (Sandbox Code Playgroud)
如果你的价值观k和r两个列表,你可以这样做:
y,..., c = (func(*t) for t in zip(lst_k, lst_r))
Run Code Online (Sandbox Code Playgroud)
或者更好的是将数据结构保留为列表列表,以免担心LHS上的目标数量:
super_list = [func(*t) for t in zip(lst_k, lst_r)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |