簡體   English   中英

如何為存儲在一維列表中的每個項目分配一個隨機變量? Output 必須是二維列表

[英]How to assign a random variable to each item stored in a 1D list ? Output has to be a 2D list

我希望你做得很好:)

抱歉,如果這聽起來太容易在這里發布。

我看過許多涉及 map、list 和 zip 函數的教程,用於將兩個 1D 列表合並為 2D 列表,但我找不到適用於帶有隨機變量的列表集的解決方案。

我有我的主要一維列表,其中包含幾個項目(+1000):

item_code = [123,124,125,126,127,128,129,130,131,132]

我有另一個包含隨機變量的列表:

r = ['P1','P2','P3','P4','P5','P6]

現在,我要做的是從 item_code 列表中選擇每個項目,並從r列表中為每個項目分配一個隨機變量“PX”,並將結果存儲在 2D 列表中。

Output 將是這樣的:

2D_List = [[123,P4],[124,P2],[123,P6]] etc.

感謝您提供的任何幫助,附帶說明,如果您有任何關於列表、二維列表的學習材料,那將是非常棒的,因為我正在努力學習有關該主題的更多信息。 但在初學者之后找不到好的教程。

問候, R。

您可以使用zip function:

[list(x) for x in zip(a,r)]

Output:

[[123, 'P1'], [124, 'P2'], [125, 'P3'], [126, 'P4'], [127, 'P5'], [128, 'P6']]

編輯:

我認為輸入列表已經打亂了,但是如果你想隨機化這個過程:

import random

[list(x) for x in zip(a,random.sample(r, len(r)))]

兩個列表必須具有相同的長度

編輯2:

如果他們可以有不同的長度選擇這個代碼:

import random

my_zip = zip(a,random.sample(r, len(a))) if len(a) <= len(r) else zip(random.sample(a, len(r)),r)
[list(x) for x in my_zip]

以下代碼應該可以工作,但正如@Alexey_Larionov 所提到的,r 列表應該直接包含隨機變量,或者是包含它們的字典。

import random
item_code = [123, 124, 125, 126, 127, 128, 129, 130, 131, 132]
r = ['P1','P2','P3','P4','P5','P6']
output_list = [[item, random.choice(r)] for item in item_code]
>> [[123, 'P6'], [124, 'P5'], [125, 'P6'], [126, 'P3'], [127, 'P1'], [128, 
'P4'], [129, 'P4'], [130, 'P3'], [131, 'P1'], [132, 'P2']]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM