假设我有以下列表:
result_lines = ['name1 age1 address1 email1',
'name2 age2 address2 email2',
'name3 age3 address3 email3']
我想打印以下字符串:
'age1:name1, age2:name2, age3: name3'
注意:字符串末尾没有,
!你知道吗
更新:重要的不是顺序age1:name1
。也可以是age1:email1:name1
。你知道吗
到目前为止我尝试的是:
print "".join((l.split(' ')[1], l.split(' ')[0]) for l in result_lines)
但是,我收到以下错误消息:
TypeError: sequence item 0: expected string, tuple found
谢谢你的帮助。你知道吗
^{} 是您希望呈现
list
或tuple
内容的朋友:把它分解一下,因为这一行有很多事情要做。。。你知道吗
我们从简单的列表理解开始:
并使用^{} 将字符串拆分为空白(我们只需要拆分一次):
介绍^{} 和unpack the argument list:
选择我们想要的元素:
(} 它与
str.
)^{', '
一起:Q.E.D
要在一行中执行此操作而不需要多次调用split,您需要反转并切片
.split()
结果,并嵌套字符串联接:所以列表中的每个条目都是:
[::-1]
反转。你知道吗':'
结合得到age?:name?
对。你知道吗[ ... for .. in ... ]
),因为使用str.join()
会更快。在内部,.join()
计算加入前的最终字符串长度,并将生成器强制转换为列表。理解力在速度上获胜。你知道吗然后将整个列表与
', '
连接起来,形成一个逗号分隔的列表。因为我们只分开一次这将提供:
这应该可以完成以下工作:
相关问题 更多 >
编程相关推荐