我有RIR_list
格式的文件名列表number/filename
。例如3/foo
。在这种情况下,数字是1到30之间的整数(不失一般性)。
我希望从上一个列表中选择n对子列表。对于这两个条目,n对中的每对都应具有相同的编号。有效的代码是(如果我什么都没漏掉的话):
#choose a random beginning for each pair
room_nb = np.random.randint(30,size=n)+1
#iterate through pairs
for i in range(n):
#generate sublist containing only entries with the correct beginning for this iteration
room_RIR = [rir for rir in RIR_list if rir.startswith(str(room_nb[i])+'/')]
#pick a random pair with the same header for this iteration
chosen_RIR = random.choices(room_RIR,k=2)
如果我只希望随机分配n个条目,则可以对一对random.choices(RIR_list,k=n)
使用一次单行import serial
import struct
ser = serial.Serial(
port = '/dev/ttyUSB0',baudrate = 19200,parity = serial.PARITY_NONE,stopbits = serial.STOPBITS_ONE,bytesize = serial.EIGHTBITS
)
print(ser.isOpen())
thestring = "7E FF 02 03 04 05 7F"
data = struct.pack(hex(thestring))
ser.write(data)
s = ser.read(1)
print(s)
ser.closed()
。有没有办法以更优雅的方式来做傻瓜工作?更重要的是,也许计算量较低?
P.S。 不允许使用具有相同文件名的配对,并且每个数字碰巧都包含相同数量的文件,但是如果不同,则首选相对于该数字的均匀分布,即,如果包含两个文件,则概率为每个0.5。