从列表中提取列表并使用新格式打印每个列表-Python 3.6



我有一个以下格式的列表,包括末尾的额外方括号:

[[[['10.0.0.0-E', '10.0.0.0-B'], ['172.0.0.0-E', '172.0.0.0-B'], ['12.0.0.0-E', '12.0.0.0-B']]]]

我想把这份清单打印出来如下:

10.0.0.0-E - 10.0.0.0-B
172.0.0.0-E - 172.0.0.0-B
12.0.0.0-E - 12.0.0.0-B

额外的支架把我搞砸了吗?

我试过了。。

newList = []
for item in result:
newList.append(item[0].split(","))
print(newList)

您的列表是列表中的列表,它解释了额外的括号。

这项工作:

result = [[[['10.0.0.0-E', '10.0.0.0-B'], ['172.0.0.0-E', '172.0.0.0-B'], ['12.0.0.0-E', '12.0.0.0-B']]]]
for item in result[0][0]:
print(f'{item[0]} - {item[1]}')

result[0][0]选择result的第一个元素(一个列表(,然后选择其第一个元素,另一个列表——for循环然后将该列表的每个元素一次一个地分配给item

print(f'{item[0]} - {item[1]}')获取该项目并打印一个格式化字符串,如您所需:

10.0.0.0-E - 10.0.0.0-B
172.0.0.0-E - 172.0.0.0-B
12.0.0.0-E - 12.0.0.0-B

假设内部列表总是一对字符串:

from functools import reduce
a = [[[['10.0.0.0-E', '10.0.0.0-B'], ['172.0.0.0-E', '172.0.0.0-B'], ['12.0.0.0-E', '12.0.0.0-B']]]]
if a:
while type(a[0]) == list:
a = reduce(lambda x,y:x+y,a)
for i in range(0,len(a),2):
print(a[i],a[i+1])

您是否尝试过循环通过指定的索引,比如这个

for i in x[0][0]:                                                                                                      
print(i) 
Result                                                                                                                                                                                            
['10.0.0.0-E', '10.0.0.0-B']                                                                                            
['172.0.0.0-E', '172.0.0.0-B']                                                                                          
['12.0.0.0-E', '12.0.0.0-B']

或者你当然可以像这个例子那样使用end=''

for i in x[0][0]:
for j in I:                                                                                                       
print(j, end='')                                                                                               
print(end='n')                                                                                                   

Result:
10.0.0.0-E10.0.0.0-B                                                                                                    
172.0.0.0-E172.0.0.0-B                                                                                                  
12.0.0.0-E12.0.0.0-B  

所以您基本上有四个级别的嵌套列表:

[ # <- first level
[ # <- second level
[ # <- third level
['10.0.0.0-E', '10.0.0.0-B'],
['172.0.0.0-E', '172.0.0.0-B'],
['12.0.0.0-E', '12.0.0.0-B']
]
]
]

在这种情况下,第一级和第二级并不重要。您希望在第三个级别上进行迭代并连接字符串。

从去除这两个外层开始:

my_list = [[[['10.0.0.0-E', '10.0.0.0-B'], ['172.0.0.0-E', '172.0.0.0-B'], ['12.0.0.0-E', '12.0.0.0-B']]]]
list_of_pairs = my_list[0][0]

然后使用for pair in list_of_pairs迭代list_of_pairs并连接字符串:

for pair in list_of_pairs:
print(' - '.join(pair))

综合起来:

my_list = [[[['10.0.0.0-E', '10.0.0.0-B'], ['172.0.0.0-E', '172.0.0.0-B'], ['12.0.0.0-E', '12.0.0.0-B']]]]
for pair in my_list[0][0]:
print(' - '.join(pair))

或者,去掉显式for循环:

my_list = [[[['10.0.0.0-E', '10.0.0.0-B'], ['172.0.0.0-E', '172.0.0.0-B'], ['12.0.0.0-E', '12.0.0.0-B']]]]
print('n'.join(' - '.join(pair) for pair in my_list[0][0]))

我希望这能帮助我的朋友:

a = [[[['10.0.0.0-E', '10.0.0.0-B'], ['172.0.0.0-E', '172.0.0.0-B'], ['12.0.0.0-E', '12.0.0.0-B']]]]
main_list = a[0][0]
for i in range(len(main_list)):
print(main_list[i][0], '-' ,main_list[i][1])

输出:

10.0.0.0-E - 10.0.0.0-B
172.0.0.0-E - 172.0.0.0-B
12.0.0.0-E - 12.0.0.0-B

最新更新