繁体   English   中英

在Python中打印不带方括号的元组列表

[英]Printing a list of tuples without square brackets in Python

我试图打印出不带括号的元组列表,同时在元组周围保持括号。

例如,代替输出(当前输出):

[('1', '3'), ('1', '4'), ('2', '3'), ('2', '4')]

输出应为:

(1, 3) (1, 4) (2, 3) (2, 4)

当前的源代码如下。

from itertools import product

if __name__ == '__main__':
    input_lists = []
    num_loops = int(input())
    i = 0

    while i < num_loops:
        add_to_list = input()
        input_lists.append(add_to_list.split(" "))
        i += 1

    result = ([i for i in product(*input_lists)])
    print(''.join(str(result)))

列表理解, str.formatstr.join

In [1045]: lst = [('1', '3'), ('1', '4'), ('2', '3'), ('2', '4')]

In [1046]: ' '.join('({}, {})'.format(i, j) for i, j in lst)
Out[1046]: '(1, 3) (1, 4) (2, 3) (2, 4)'

我建议进行int转换,然后解压缩:

>>> from __future__ import print_function  # for Python 2
>>> lst = [('1', '3'), ('1', '4'), ('2', '3'), ('2', '4')]
>>> print(*[tuple(map(int,t)) for t in lst])
(1, 3) (1, 4) (2, 3) (2, 4)
print(' '.join([str(int(i for i in tup)
                for tup in list_of_tuples]))

实际上,在元组上调用str()会生成元组本身,因此我只对列表中的每个项目执行了此操作。 我还需要将元组中的每个项目都设为int,因此我还要对每个元组中的每个项目执行int() ' '.join()方法将由单个空格传入的iterable中的所有项目分开。 所以...我传入了一个列表理解,它对列表中的每个项目执行str()

用像这样的数组

 x = [('1', '3'), ('1', '4'), ('2', '3'), ('2', '4')]

您可以简单地执行以下操作:

l = [(int(x),int(y)) for x,y in l]
print(*l)

其输出类似于

output//(1, 3) (1, 4) (2, 3) (2, 4)

这是我的看法:

print(' '.join([str(tuple(map(int, i))) for i in L]))

要点:

  • 我们将tuplemap一起使用,将值从str转换为int
  • str.join是传递列表比生成器理解更有效的少数实例之一。

您可以解压缩列表。

lst = [(1, 2), (3, 4)]
print(*lst)

输出:

(1, 2) (3, 4)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM