jd9*_*d94 2 python replication list
说我有这个
b = 3
l = [1, 2]
Run Code Online (Sandbox Code Playgroud)
我想修改l,以便每个元素出现的次数与b一样多.以便:
l = [1, 1, 1, 2, 2, 2]
Run Code Online (Sandbox Code Playgroud)
我用过这个:
for x in l:
for m in range(b):
l.append(x)
Run Code Online (Sandbox Code Playgroud)
但它导致了无限循环.任何帮助,将不胜感激.我希望你们给出想法而不是给我代码.谢谢.
Scy*_*dor 11
我的2美分:
实现这一目标的另一种方法是利用您可以在Python中乘以列表的事实.
>>> l = [1, 2, 3]
>>> [1, 2, 3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
对sorted函数的简单调用允许对其进行排序:
>>> b = 3
>>> l = [1, 2]
>>> sorted(l * b)
[1, 1, 1, 2, 2, 2]
Run Code Online (Sandbox Code Playgroud)
您可以使用列表理解:
>>> b = 3
>>> x = [1, 2]
>>> l = [x for x in l for _ in range(b)]
>>> l
[1, 1, 1, 2, 2, 2]
>>>
Run Code Online (Sandbox Code Playgroud)
现在,解决您的问题:
您可能想要创建一个新列表,并附加到该列表
>>> l = [1, 2]
>>> y = []
>>> b = 3
>>> for x in l:
... for i in range(b):
... y.append(x)
...
>>> y
[1, 1, 1, 2, 2, 2]
Run Code Online (Sandbox Code Playgroud)
我更喜欢列表理解方法.
| 归档时间: |
|
| 查看次数: |
9682 次 |
| 最近记录: |