【发布时间】:2021-04-11 18:42:38
【问题描述】:
问题
我有一个字符串列表,我们称之为input_list,这个列表中的每个字符串都由五个单词组成,只用一个“%”字符分隔,比如
"<word1>%<word2>%<word3>%<word4>%<word5>"
我的目标是,对于 input_list 的每个元素,制作一个仅由 <word3> 和 <word4> 组成的字符串除以“%”符号,就像这样"<word3>%<word4>",并创建一个由这些字符串组成的新列表。
例如,如果:
input_list = ['the%quick%brown%fox%jumps', 'over%the%lazy%dog%and']
那么新列表将如下所示
new_list = ['brown%fox', 'lazy%dog']
重要说明和可能的答案
- 每个单词的长度是随机的,所以我不能只使用字符串切片或以任何方式猜测
<word3>和<word4>是如何开始的。 - 一种可能的方法来回答这个问题,但我想知道是否有更好并且可能(计算上)更快的方法,而不必创建新变量(current_list)和/或不必考虑/拆分整个字符串(也许使用正则表达式?)
input_list = ['the%quick%brown%fox%jumps', 'over%the%lazy%dog%and']
new_list = []
for element in input_list:
current_list = element.split('%')
final_element = [current_list[2], current_list[3]]
new_list.append(final_element)
编辑:
我尝试比较@Pac0 答案的运行时间和@bb1 答案的运行时间,并且,对于100 个字符串的输入列表,@Pac0 的运行时间为 92.28286 秒,@bb1 的运行时间为42.6106374 秒。所以我会考虑@bb1 一个作为答案。
【问题讨论】:
-
@00 通过这样做,我只是创建了一个字符串而不是一个列表,它不回答“重要说明和可能的答案”中写的问题
标签: python python-3.x string list