是否有Python函数或方法对列表执行交叉验证?

2024-06-07 15:56:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个列表中提取x个元素,并创建一个新列表。然后恢复提取的元素,并提取相邻x数量的元素,直到每个元素集(大小为x)提取一次

我需要创建一个for循环:

  1. 每次运行提取x个元素
  2. 创建不包含这些元素的新列表
  3. 执行动作
  4. 恢复这些元素,然后提取下一个x元素,直到创建最后x个元素提取量的列表为止

示例

列表:A B C D E F G H I J

提取的元素数量:2

原始列表:A B C D E F G H I J

运行1

新名单:cdefghij

摘录:A B

运行2

新名单:A B E F G H I J

摘录:cd

运行3

新名单:A B C D E F I J

摘录:ef

运行4

新列表:A B C D E F G H

摘录:G H

用python编程最有效的方法是什么,或者应该使用哪个库?

这是我正在使用的字典(我正在尝试对包含两个元素input和key的元素执行此操作):

list =  [
                {
                 'input':['/82161/pets/food',
                          '/82161/mister/yellow',
                          '/82161/mister/green',
                          '/82161/mister/blue'],
                 'key': '/82161/pets/full'
                },
                {
                 'input':['/62314/pets/food',
                          '/62314/mister/yellow',
                          '/62314/mister/green',
                          '/62314/mister/blue'],
                 'key': '/62314/pets/full'
                },
                {
                 'input':['/33209/pets/food',
                          '/33209/mister/yellow',
                          '/33209/mister/green',
                          '/33209/mister/blue'],
                 'key':'/33209/pets/full'
                },
                {
                 'input':['/35602/pets/food',
                          '/35602/mister/yellow',
                          '/35602/mister/green',
                          '/35602/mister/blue'],
                 'key': '/35602/pets/full'
                }
                ]

以下是我的尝试:

original_test_list = [1,2,3,4,5,6,7,8,9,10,11]
test_list = [1,2,3,4,5,6,7,8,9,10,11]

original_amount = 3
amount = original_amount
base = 0

print("this is the length of the list " + str(len(test_list)))
while ( amount <= len(test_list)):
    for x in range(base, amount):
        print("this is x " + str(x))

    if (amount+original_amount >= len(test_list)):
        amount += len(test_list) % original_amount
        base += len(test_list) % original_amount
    else:
        amount += original_amount
        base += original_amount

    print("amount " + str(amount))
    print("base " + str(base))

Tags: keytest元素列表inputbaselenfood
1条回答
网友
1楼 · 发布于 2024-06-07 15:56:12

因此,这里有一种非常基本的方法,可以根据测试集的大小将数据划分为训练集和测试集(注意,通常是根据折叠次数

data = list("ABCDEFGHIJ")

n = 2

for start in range(0, len(data), n):
    stop = start + n
    test = data[start: stop]
    train = data[:start] + data[stop:]
    print(test, train)

这里的输出是:

['A', 'B'] ['C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
['C', 'D'] ['A', 'B', 'E', 'F', 'G', 'H', 'I', 'J']
['E', 'F'] ['A', 'B', 'C', 'D', 'G', 'H', 'I', 'J']
['G', 'H'] ['A', 'B', 'C', 'D', 'E', 'F', 'I', 'J']
['I', 'J'] ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

相关问题 更多 >

    热门问题