从两个匹配列表中随机选择 [Python]
Random choice from two match list [Python]
我在通过我的代码执行此场景时遇到问题。我必须在 .ini 文件中列出。
[FMI]
vendorCodes=["a", "b", "c", "d", "e"]
supplierName=["Test 1", "Test 2", "Test 3", "Test 4", "Test 5" ]
我使用 json.loads 从 .ini
文件调用列表。
vendorCodes = json.loads(config.get('Section1','vendorCodes'))
supplierName = json.loads(config.get('Section1','supplierName'))4
从列表中,random.choice
将执行选择数据。
vendorCodes, supplierName = random.choice(vendorCodes), random.choice(supplierName)
我还有一个函数可以将其写入 .csv
文件。
fmiwriter.writerow([poNumber] + [vendorCodes] + [supplierName])
嗯,问题是输出不正确。它应该从列表中匹配,如果来自供应商代码的随机选择是 a
那么 supplierName
应该是 Test 1
.
下面是错误的输出:
588636,a,Test 3
332790,c,Test 2
810055,d,Test 4
655819,a,Test 3
159163,e,Test 1
预期的输出应该是这样的:
588636,a,Test 1
332790,c,Test 3
810055,d,Test 4
655819,a,Test 1
159163,e,Test 5
不要使用 choice
。选择一个整数索引,并使用该索引访问两个列表。
import random
index = random.randrange(len(vendorCodes))
chosenVendorCode = vendorCodes[index]
chosenSupplierName = supplierName[index]
您可以 zip
random.choice
的两个列表来串联选择一对:
chosenVendorCode, chosenSupplierName = random.choice(zip(vendorCodes, supplierName))
我在通过我的代码执行此场景时遇到问题。我必须在 .ini 文件中列出。
[FMI]
vendorCodes=["a", "b", "c", "d", "e"]
supplierName=["Test 1", "Test 2", "Test 3", "Test 4", "Test 5" ]
我使用 json.loads 从 .ini
文件调用列表。
vendorCodes = json.loads(config.get('Section1','vendorCodes'))
supplierName = json.loads(config.get('Section1','supplierName'))4
从列表中,random.choice
将执行选择数据。
vendorCodes, supplierName = random.choice(vendorCodes), random.choice(supplierName)
我还有一个函数可以将其写入 .csv
文件。
fmiwriter.writerow([poNumber] + [vendorCodes] + [supplierName])
嗯,问题是输出不正确。它应该从列表中匹配,如果来自供应商代码的随机选择是 a
那么 supplierName
应该是 Test 1
.
下面是错误的输出:
588636,a,Test 3
332790,c,Test 2
810055,d,Test 4
655819,a,Test 3
159163,e,Test 1
预期的输出应该是这样的:
588636,a,Test 1
332790,c,Test 3
810055,d,Test 4
655819,a,Test 1
159163,e,Test 5
不要使用 choice
。选择一个整数索引,并使用该索引访问两个列表。
import random
index = random.randrange(len(vendorCodes))
chosenVendorCode = vendorCodes[index]
chosenSupplierName = supplierName[index]
您可以 zip
random.choice
的两个列表来串联选择一对:
chosenVendorCode, chosenSupplierName = random.choice(zip(vendorCodes, supplierName))