在列表中加入列表?

2024-05-23 18:43:43 发布

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

我尝试在python中的一个列表中连接一些列表,下面是我正在做的一个示例(在实际代码中,列表要大得多):

import itertools

listenv = ["IN","VC","VS"]
listsize = ["U17-1","U17-2"]

listevnsize = list(itertools.product(listenv, listsize,))

print listevnsize
#This results in [('IN', 'U17-1'), ('IN', 'U17-2'), ('VC', 'U17-1'), ('VC', 'U17-2'), ('VS', 'U17-1'), ('VS', 'U17-2')]

我现在要做的是将内部列表与a结合起来-例如,我希望结果是:

[('IN-U17-1'), ('IN-U17-2'), ('VC-U17-1'), ('VC-U17-2'), ('VS-U17-1'), ('VS-U17-2')]

换句话说,我想加入内部列表,但当我尝试使用:

listevnsizejoined = '-'.join(map(str,listevnsizezip))

正如在另一个问题中所建议的,这是将所有外部列表连接成一个大字符串,如下所示:

(('IN', 'U17-1'),)-(('IN', 'U17-2'),)-(('VC', 'U17-1'),)-(('VC', 'U17-2'),)-(('VS', 'U17-1'),)

最终解决方案:

import itertools

listenv = ["IN","VC","VS","VX","RH","HT","DP","AD","PT","PTRH","WP","WPRH","CYVX","HM"];
listsize = ["U17-1","U17-2"];
listseventeenGR = ["17P:3","17P:4","17P:5.5","17P:7","17P:10","17P:16","17P:22","17P:28","17P:40","17P:49","17P:55","17P:70","17P:100"]


listevnsize = list(itertools.product(listenv, listsize,))

listenvsizejoined = []

for x in listevnsize:
    listenvsizejoined.append('-'.join(i for i in x))

print listenvsizejoined

这是在所有组合中组合两个列表,然后用破折号连接这些内部列表的最终解决方案。你知道吗


Tags: inimport列表productlistvsprintitertools
3条回答

用拉链就行了

new_list = []
for i,j in zip(listenv, listsize):
    new_list.append(('{0}-{1}').format(i,j))
listenvsize = ["{}-{}".format(x,y) for x in listenv for y in listsize]

结果不会是一个元组列表,因为元组中只有一个元素。你知道吗

使用str.join

S.join(iterable) -> string

Return a string which is the concatenation of the strings in the
iterable.  The separator between elements is S.

l = []

for x in listevnsize:
    l.append('-'.join(i for i in x))

相关问题 更多 >