我不知道我是不是很傻但是我有一个小问题。我有一个列表list1
列表。如下所示,此列表中的列表项是整数。在一个简单的for循环中,我可以遍历所有这些列表。所以这个:
list1 = [ [0, 1], [2], [3], [4,5,6,7], [8,9], [10], [11,12], ...... ]
for item in list1:
print item
将产生:
[0, 1]
[2]
[3]
[4,5,6,7]
...
让我们说我们处于第一次迭代。 item
为[0, 1]
。我正在寻找的是一行代码,可让我访问0
和1
,因为我想稍后打印一行,看起来像“这是0和1”。听起来很容易吗?我以为我只是join
item
:
list1 = [ [0, 1], [2], [3], [4,5,6,7], [8,9], [10], [11,12], ...... ]
for item in list1:
print [x for x in ''.join(item) ]
给出了这个错误:
print [x for x in ''.join(item) ]
TypeError: sequence item 0: expected string, int found
我无法加入[0, 1]
因为python要我使用字符串。如果我使用此行将item
转换为字符串:
print [x for x in ''.join(str(item)) ]
我得到了这个丑陋的结果:
['[', '0', ',', ' ', '1', ']']
任何人都可以告诉我如何正确地做到这一点?我现在感觉有点愚蠢。就像我之前说的那样,我想写一些像'This is '.join(str(item))
(一行代码)
答案 0 :(得分:2)
您需要在加入之前将每个子列表中的每个项目转换为字符串,而不是将整个子列表转换为字符串,例如。
>>> list1 = [ [0, 1], [2], [3], [4,5,6,7], [8,9], [10], [11,12] ]
>>> for sublist in list1:
... print ' '.join(map(str, sublist))
...
0 1
2
3
4 5 6 7
8 9
10
11 12
答案 1 :(得分:1)
你只想要,例如:
for item in list1:
print " ".join(map(str, item))
在Python 3.x中,你可以这样做:
for item in list1:
print(*item)
答案 2 :(得分:1)
我想稍后打印一行,看起来像“这是0和1”。
list1 = [ [0, 1], [2], [3], [4,5,6,7], [8,9], [10], [11,12] ]
for item in list1:
print ('This is {}.'.format(' and '.join(str(x) for x in item)))