Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表项从长度为4的列表B映射到列表A的每个列表项_Python_List_Loops_Nested - Fatal编程技术网

Python 将列表项从长度为4的列表B映射到列表A的每个列表项

Python 将列表项从长度为4的列表B映射到列表A的每个列表项,python,list,loops,nested,Python,List,Loops,Nested,我在解决下面的问题时遇到问题,请检查下面的代码 filenamee5 = 'ABC' counter1 = 1 counter2 = 2 list1 = [] list2 = range(1000) for x in list2: counter1 = str(counter1) full_name5 = (filenamee5 + counter1) list1.append(full_name5) counter1 = counter2

我在解决下面的问题时遇到问题,请检查下面的代码

filenamee5 = 'ABC'
counter1 = 1
counter2 = 2          
list1 = []
list2 = range(1000)
for x in list2:
    counter1 = str(counter1)
    full_name5 = (filenamee5 + counter1)
    list1.append(full_name5)
    counter1 = counter2
    counter2 += 1
    numbers_list = []
    level1 = []
    for x in list1:
        numbers_list.append(x)
        ListsOfAll = numbers_list[1:1000]
        for x1 in range(1, len(ListsOfAll), 4):
            level1.append(list(numbers_list[x1:x1 + 4]))
            l1 = level1[0]
            l2 = level1[1:5]
            l3 = level1[5:21]
            l4 = level1[21:85]
            l5 = level1[85:341]
            l6 = level1[341:1365]
            ll2 = []
            for i in range(len(l2)):
                aaa = l1[i], l2[i]
                ll2.append(aaa)
                print(ll2)
                print("the length is:",len(ll2))
仅第一个和第二个列表的实际输出:

[('ABC2', ['ABC6', 'ABC7', 'ABC8', 'ABC9']),

 ('ABC3', ['ABC10', 'ABC11', 'ABC12', 'ABC13']),

 ('ABC4', ['ABC14', 'ABC15', 'ABC16', 'ABC17']), 

 ('ABC5', ['ABC18', 'ABC19', 'ABC20', 'ABC21'])]

the length is: 4
此处,每个列表项目应包含以下列表中的四个项目,即比例为1:4组

请参见下面的示例以了解我的问题:

List1 = ['A','B','C','D']

List2=['E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T']

List3 = ['A',['E','F','G','H'],'B',['I','J','K','L'],'C',['M','N','O','P'],'D',['Q','R','S','T']]

请帮助我与您的建议,将不胜感激

我一点也不知道您为什么需要这个(我敢猜这可能是…)的另一种情况,我必须声明,在一篇文章中为一个问题添加不同的样本数据集有点奇怪。。。但是-也许您可以使用此选项:
(我称之为“二次链接”,因为映射是不同的…)

解决方案功能:

def quadraticChaining(somelists):
    out = []
    for i, e in enumerate(somelists[0]):
        out.append(e)
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            out.append(sub[i*L:(i+1)*L])
    return out
def quadraticChaining(somelists):
    for i, e in enumerate(somelists[0]):
        yield e
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            yield sub[i*L:(i+1)*L]
list1 = ['A'+str(i) for i in range(4)]
list2 = ['B'+str(i) for i in range(4**2)]
list3 = ['C'+str(i) for i in range(4**3)]
list4 = ['D'+str(i) for i in range(4**4)]
list5 = ['E'+str(i) for i in range(4**5)]
list6 = ['F'+str(i) for i in range(4**6)]
quadraticChaining([list1, list2])

# ['A0',
#  ['B0', 'B1', 'B2', 'B3'],
#  'A1',
#  ['B4', 'B5', 'B6', 'B7'],
#  'A2',
#  ['B8', 'B9', 'B10', 'B11'],
#  'A3',
#  ['B12', 'B13', 'B14', 'B15']]
L = quadraticChaining([list1, list2, list3])
# <generator object quadraticChaining at 0x0000000009993B88>

next(L)
# 'A0'

next(L)
# ['B0', 'B1', 'B2', 'B3']

next(L)
# ['C0',
#  'C1',
#  'C2',
#  'C3',
#  'C4',
#  'C5',
#  'C6',
#  'C7',
#  'C8',
#  'C9',
#  'C10',
#  'C11',
#  'C12',
#  'C13',
#  'C14',
#  'C15']

next(L)
# 'A1'

...
…或者如果您不需要在内存中存储整个内容,只想对其进行迭代
作为生成器:

def quadraticChaining(somelists):
    out = []
    for i, e in enumerate(somelists[0]):
        out.append(e)
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            out.append(sub[i*L:(i+1)*L])
    return out
def quadraticChaining(somelists):
    for i, e in enumerate(somelists[0]):
        yield e
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            yield sub[i*L:(i+1)*L]
list1 = ['A'+str(i) for i in range(4)]
list2 = ['B'+str(i) for i in range(4**2)]
list3 = ['C'+str(i) for i in range(4**3)]
list4 = ['D'+str(i) for i in range(4**4)]
list5 = ['E'+str(i) for i in range(4**5)]
list6 = ['F'+str(i) for i in range(4**6)]
quadraticChaining([list1, list2])

# ['A0',
#  ['B0', 'B1', 'B2', 'B3'],
#  'A1',
#  ['B4', 'B5', 'B6', 'B7'],
#  'A2',
#  ['B8', 'B9', 'B10', 'B11'],
#  'A3',
#  ['B12', 'B13', 'B14', 'B15']]
L = quadraticChaining([list1, list2, list3])
# <generator object quadraticChaining at 0x0000000009993B88>

next(L)
# 'A0'

next(L)
# ['B0', 'B1', 'B2', 'B3']

next(L)
# ['C0',
#  'C1',
#  'C2',
#  'C3',
#  'C4',
#  'C5',
#  'C6',
#  'C7',
#  'C8',
#  'C9',
#  'C10',
#  'C11',
#  'C12',
#  'C13',
#  'C14',
#  'C15']

next(L)
# 'A1'

...

样本数据:

def quadraticChaining(somelists):
    out = []
    for i, e in enumerate(somelists[0]):
        out.append(e)
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            out.append(sub[i*L:(i+1)*L])
    return out
def quadraticChaining(somelists):
    for i, e in enumerate(somelists[0]):
        yield e
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            yield sub[i*L:(i+1)*L]
list1 = ['A'+str(i) for i in range(4)]
list2 = ['B'+str(i) for i in range(4**2)]
list3 = ['C'+str(i) for i in range(4**3)]
list4 = ['D'+str(i) for i in range(4**4)]
list5 = ['E'+str(i) for i in range(4**5)]
list6 = ['F'+str(i) for i in range(4**6)]
quadraticChaining([list1, list2])

# ['A0',
#  ['B0', 'B1', 'B2', 'B3'],
#  'A1',
#  ['B4', 'B5', 'B6', 'B7'],
#  'A2',
#  ['B8', 'B9', 'B10', 'B11'],
#  'A3',
#  ['B12', 'B13', 'B14', 'B15']]
L = quadraticChaining([list1, list2, list3])
# <generator object quadraticChaining at 0x0000000009993B88>

next(L)
# 'A0'

next(L)
# ['B0', 'B1', 'B2', 'B3']

next(L)
# ['C0',
#  'C1',
#  'C2',
#  'C3',
#  'C4',
#  'C5',
#  'C6',
#  'C7',
#  'C8',
#  'C9',
#  'C10',
#  'C11',
#  'C12',
#  'C13',
#  'C14',
#  'C15']

next(L)
# 'A1'

...
函数示例:

def quadraticChaining(somelists):
    out = []
    for i, e in enumerate(somelists[0]):
        out.append(e)
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            out.append(sub[i*L:(i+1)*L])
    return out
def quadraticChaining(somelists):
    for i, e in enumerate(somelists[0]):
        yield e
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            yield sub[i*L:(i+1)*L]
list1 = ['A'+str(i) for i in range(4)]
list2 = ['B'+str(i) for i in range(4**2)]
list3 = ['C'+str(i) for i in range(4**3)]
list4 = ['D'+str(i) for i in range(4**4)]
list5 = ['E'+str(i) for i in range(4**5)]
list6 = ['F'+str(i) for i in range(4**6)]
quadraticChaining([list1, list2])

# ['A0',
#  ['B0', 'B1', 'B2', 'B3'],
#  'A1',
#  ['B4', 'B5', 'B6', 'B7'],
#  'A2',
#  ['B8', 'B9', 'B10', 'B11'],
#  'A3',
#  ['B12', 'B13', 'B14', 'B15']]
L = quadraticChaining([list1, list2, list3])
# <generator object quadraticChaining at 0x0000000009993B88>

next(L)
# 'A0'

next(L)
# ['B0', 'B1', 'B2', 'B3']

next(L)
# ['C0',
#  'C1',
#  'C2',
#  'C3',
#  'C4',
#  'C5',
#  'C6',
#  'C7',
#  'C8',
#  'C9',
#  'C10',
#  'C11',
#  'C12',
#  'C13',
#  'C14',
#  'C15']

next(L)
# 'A1'

...

生成器示例:

def quadraticChaining(somelists):
    out = []
    for i, e in enumerate(somelists[0]):
        out.append(e)
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            out.append(sub[i*L:(i+1)*L])
    return out
def quadraticChaining(somelists):
    for i, e in enumerate(somelists[0]):
        yield e
        for p, sub in enumerate(somelists[1:]):
            L = 4**(p+1)
            yield sub[i*L:(i+1)*L]
list1 = ['A'+str(i) for i in range(4)]
list2 = ['B'+str(i) for i in range(4**2)]
list3 = ['C'+str(i) for i in range(4**3)]
list4 = ['D'+str(i) for i in range(4**4)]
list5 = ['E'+str(i) for i in range(4**5)]
list6 = ['F'+str(i) for i in range(4**6)]
quadraticChaining([list1, list2])

# ['A0',
#  ['B0', 'B1', 'B2', 'B3'],
#  'A1',
#  ['B4', 'B5', 'B6', 'B7'],
#  'A2',
#  ['B8', 'B9', 'B10', 'B11'],
#  'A3',
#  ['B12', 'B13', 'B14', 'B15']]
L = quadraticChaining([list1, list2, list3])
# <generator object quadraticChaining at 0x0000000009993B88>

next(L)
# 'A0'

next(L)
# ['B0', 'B1', 'B2', 'B3']

next(L)
# ['C0',
#  'C1',
#  'C2',
#  'C3',
#  'C4',
#  'C5',
#  'C6',
#  'C7',
#  'C8',
#  'C9',
#  'C10',
#  'C11',
#  'C12',
#  'C13',
#  'C14',
#  'C15']

next(L)
# 'A1'

...
L=quadraticChaining([list1,list2,list3])
# 
下一(L)
#‘A0’
下一(L)
#['B0','B1','B2','B3']
下一(L)
#['C0',
#“C1”,
#“C2”,
#“C3”,
#"C4",,
#“C5”,
#“C6”,
#“C7”,
#“C8”,
#“C9”,
#‘C10’,
#‘C11’,
#‘C12’,
#‘C13’,
#‘C14’,
#“C15”]
下一(L)
#“A1”
...

您的问题是什么?你有什么错误吗?你能描述一下你的问题吗?很难从这段代码和示例(至少描述一下您的输入/输出)中找到答案,不要将您的输出粘贴为图像。最好把它复制/粘贴到你的答案上。通过搜索引擎将更容易找到它。是的。我已经定义了列表,其中列表1有4个项目,列表2有16个项目,以此类推,列表6中的4096个项目。但是我需要一个类似于列表1中每个项目的执行结果,必须从列表2中映射4个连续的项目,以便每个列表必须得到4个相等的块项目,下面任何列表的任何项目。总体情况就像一个树结构,四下一,四下一…等等!但是
List3
包含8个元素(或者20个元素取决于您如何计算),而不是64个元素。