试图同时将两个列表的两个列表和洗牌元素与一个枚举函数同时添加
我正在使用两个功能:
- 将list_b附加到list_a
- 改组list_a并使用枚举函数进行索引。
此外,我还想在新的洗牌list_a中列出list_b的元素,并使用相同的枚举函数以相同的数字序列索引两个列表的项目。下面是我到目前为止的位置。
list_a = ["alpha", "beta", "romeo", "nano", "charlie"]
list_b = [1,2,3,4,5,6,7]
from random import shuffle
list_a.append(list_b)
shuffle(list_a)
print(list_a)
for idx, val in enumerate(list_a, start=1):
print(idx, val)
输出
['nano', 'charlie', 'alpha', 'beta', [1, 2, 3, 4, 5, 6, 7], 'romeo']
1 nano
2 charlie
3 alpha
4 beta
5 [1, 2, 3, 4, 5, 6, 7]
6 romeo
我可能会缺少某些东西,但是您可以在将其附加到list_a
之前将list_b
弄乱。
from random import shuffle
list_a = ["alpha", "beta", "romeo", "nano", "charlie"]
list_b = [1, 2, 3, 4, 5, 6, 7]
shuffle(list_b)
list_a.append(list_b)
shuffle(list_a)
print(list_a)
for idx, val in enumerate(list_a, start=1):
print(idx, val)
输出
['alpha', 'charlie', 'nano', [1, 4, 5, 2, 7, 3, 6], 'beta', 'romeo']
1 alpha
2 charlie
3 nano
4 [1, 4, 5, 2, 7, 3, 6]
5 beta
6 romeo
尝试以下:
# append
from random import sample, shuffle
list_a.append(list_b)
# shuffle the list within the list
for i, v in enumerate(list_a):
if isinstance(v, list):
list_a[i] = sample(v, len(v))
# shuffle the list
list_a = sample(list_a, len(list_a))
# unpack elements
list_c = []
for e in list_a:
if not isinstance(e, list):
list_c.append(e)
continue
for v in e:
list_c.append(v)
# print
for i, v in enumerate(list_c):
print(i, v)
您可以通过基本概念if-else
和type
方法轻松地获得结果。我在您的代码中添加了2行: -
list_a = ["alpha","beta","romeo","nano","charlie"]
list_b = [1,2,3,4,5,6,7]
from random import shuffle
list_a.append(list_b)
shuffle(list_a)
print(list_a)
print()
for idx, val in enumerate(list_a, start=1):
if type(val) is list: # This is newly added.
shuffle(val)
print(idx, val)
else:
print(idx, val)
我希望它可以帮助您。