从Python列表中获取第一行/第一元素?

时间:2019-05-16 14:05:22

标签: python

python的新手 我对列表主题有疑问

我有一个清单

 [b'Manchester',b'Liverpool',b'Cardiff']
 [b'Brighton',b'Leeds',b'Sheffield']
 [b'London',b'Westham',b'Lisbon']

我的输出应该是

 [Manchester,Liverpool,Cardiff] and [Brighton,Leeds,Sheffield] and [London,Westham,Lisbon]

试图选择第一个索引[0]但显示它

 Manchester
 Brighton
 London

代替上面指定的输出。

3 个答案:

答案 0 :(得分:0)

您可以使用repr将任何数据类型转换为字符串格式并输出显示。

答案 1 :(得分:0)

如果您定义的列表如下:

mylist = [b'Manchester', b'Liverpool', b'Cardiff']

然后您要求Python打印它,您将得到以下信息:

>>> print(mylist)
[b'Manchester', b'Liverpool', b'Cardiff']

您看到b'..'是因为您的数据是字节串,并且当您print一个数据结构时,Python将使用其默认格式。这包括显示足够的信息,您可以重建原始数据。

如果您想要另一个表示,那么您必须自己做。例如,

>>> print (','.join(city.decode() for city in mylist))
Manchester,Liverpool,Cardiff

如果您真的想要前后方括号,可以将其添加到print语句中。

答案 2 :(得分:0)

以下是两种解决方案,不确定要寻找的是哪种解决方案:

lst = [b'Manchester', b'Liverpool', b'Cardiff']

print([s.decode() for s in lst])
print()
print(f"[{','.join(s.decode() for s in lst)}]")

输出:

['Manchester', 'Liverpool', 'Cardiff']

[Manchester,Liverpool,Cardiff]

或:

lst = [[b'Manchester',b'Liverpool',b'Cardiff'],
       [b'Brighton',b'Leeds',b'Sheffield'],
       [b'London',b'Westham',b'Lisbon']]

print([[s.decode() for s in ls] for ls in lst])
print()
print('\n'.join([f"[{','.join(s.decode() for s in ls)}]" for ls in lst]))

输出:

[['Manchester', 'Liverpool', 'Cardiff'],
 ['Brighton', 'Leeds', 'Sheffield'],
 ['London', 'Westham', 'Lisbon']]

[Manchester,Liverpool,Cardiff]
[Brighton,Leeds,Sheffield]
[London,Westham,Lisbon]