我想从我的文本文件的每一行中随机选择 3 个元素:
6717108 8373270 8670842 8671024 8671040
8671069 8672185
8672302 8672317 8672363 8672481 8672533 8672550 8672587
8672610
8672611 8672640 8672661 8672684 8688747 8688760 8688777 8688792 8688827
8688836 8688884 8689003 8689037
8672233 8688891 8688908
8688971 8689078
但是,我并不总是每行有 3 个元素,在这种情况下,它应该包含所有元素。所以输出会像,随机取:
6717108 8670842 8671040
8671069 8672185
8672317 8672481 8672533
8672610
8672611 8688747 8688760
8688836 8689003 8689037
8672233 8688891 8688908
8688971 8689078
我的尝试如下:
random_list = []
with open('my_inputFile', "r") as myFile:
for line in myFile.readlines():
myparts = line.split(' ')
random_list.append(np.random.choice(myparts, 3))
输出格式将采用列表形式:
6717108
8670842
8671040
8671069
8672185
8672317
8672481
8672533
8672610
8672611
8688747
8688760
8688836
8689003
8689037
8672233
8688891
8688908
8688971
8689078
我的代码在每行少于 3 个元素时不满足条件,并且它显然不是列表格式。
如果您想在最后使用一个平面列表并指定replace=False
您是否不想多次选择一个项目,则需要扩展方法:
random_list = []
with open('pathToFile/inputFile', 'r') as f:
for line in f.readlines():
myparts = line.strip().split(' ')
if len(myparts) <= 3:
random_list.extend(myparts)
else:
random_list.extend(np.random.choice(myparts, 3, replace=False))
random_list
['8670842',
'6717108',
'8671024',
'8671069',
'8672185',
'8672363',
'8672317',
'8672587',
'8672610',
'8688827',
'8672661',
'8688792',
'8688884',
'8689037',
'8689003',
'8672233',
'8688891',
'8688908',
'8688971',
'8689078']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句