python 为一个列表创建多个列表

python make multiple lists of one list

PYTHON 我有一个 list 我想用它做一个 多个 列表 ,对于每个项目,我希望他创建一个列表其他项目

我的初始列表:

cities = ['Chevalley', 'A.Gharmoul 1', 'El Madania']

然后我希望输出为:

[
  ['Chevalley', 'A.Gharmoul 1'],
  ['Chevalley','El Madania'],
  ['A.Gharmoul 1', 'El Madania']
]

以下代码将帮助您创建您要查找的结果列表:

items = ['Chevalley', 'A.Gharmoul 1', 'El Madania']
res = [[items[i],items[j]] for i in range(len(items)) for j in range(i+1, len(items))]
print(res)

虽然这不一样,但它非常接近您要查找的内容。

import itertools
a = ['Chevalley', 'A.Gharmoul 1', 'El Madania']
result = list(itertools.combinations(a,2)) # number is the amount of items you want in the resultant tuple

结果将在列表中包含长度为 2 的元组。

result_list = []
for i in ['Chevalley', 'A.Gharmoul 1', 'El Madania']:
    for j in ['Chevalley', 'A.Gharmoul 1', 'El Madania']:
        if i != j:
            result_list.append([i, j])

它应该遍历所有可能的配对,同时忽略与自身的配对元素。

下面应该这样做:

l  = ['Chevalley', 'A.Gharmoul 1', 'El Madania']
n = [[l[i], l[j]] for i in range(0, len(l) - 1, 1) for j in range(i + 1, len(l), 1)]

n 将等同于:

[['Chevalley', 'A.Gharmoul 1'],
 ['Chevalley', 'El Madania'],
 ['A.Gharmoul 1', 'El Madania']]

嵌套的 for 循环完成你的工作

list1 =['Chevalley', 'A.Gharmoul 1', 'El Madania']

output =[]

for i in range(len(list1)):
 for j in range(i+1,len(list1)):
  output.append([list1[i],list1[j]]) 

print(output)#[['Chevalley', 'A.Gharmoul 1'],['Chevalley','El Madania',['A.Gharmoul 1', 'El Madania']]

您可以使用 itertools 并将输出元组转换为列表:

import itertools

new = [ list(el) for el in itertools.combinations(['Chevalley', 'A.Gharmoul 1', 'El Madania'], 2) ]