加入两个连续的列表元素
join two consecutive list elements
我有一个列表 names
看起来像这样
names = ['Peter Orson', 'Marc Johnson', 'Peter', 'Johnson']
我想加入该列表的两个特定元素。
desired_names = ['Peter Orson', 'Marc Johnson', 'Peter Johnson']
警告:
- 我不能使用索引
- 我只需要定位这两个单独的元素,即使其他元素共享某些部分(例如相同的名字)
代码:
regex = re.compile(r'/^Peter$/)
for i in names:
if regex:
i = ' '.join(map(str, regex)) # join with next list element into one string
我认为我有正确的方法来解决我的问题,但我不知道如何连接和替换匹配的字符串元素
如评论中所述,您不需要正则表达式来执行此操作:
names = [
"Peter Orson",
"Marc Johnson",
"Peter",
"Johnson",
]
idx = names.index("Peter")
names[idx] = names.pop(idx) + " " + names[idx]
print(names)
打印:
['Peter Orson', 'Marc Johnson', 'Peter Johnson']
如果您不确定 "Peter"
是否在列表中,您可以先查看:
if "Peter" in names:
idx = names.index("Peter")
names[idx] = names.pop(idx) + " " + names[idx]
我有一个列表 names
看起来像这样
names = ['Peter Orson', 'Marc Johnson', 'Peter', 'Johnson']
我想加入该列表的两个特定元素。
desired_names = ['Peter Orson', 'Marc Johnson', 'Peter Johnson']
警告:
- 我不能使用索引
- 我只需要定位这两个单独的元素,即使其他元素共享某些部分(例如相同的名字)
代码:
regex = re.compile(r'/^Peter$/)
for i in names:
if regex:
i = ' '.join(map(str, regex)) # join with next list element into one string
我认为我有正确的方法来解决我的问题,但我不知道如何连接和替换匹配的字符串元素
如评论中所述,您不需要正则表达式来执行此操作:
names = [
"Peter Orson",
"Marc Johnson",
"Peter",
"Johnson",
]
idx = names.index("Peter")
names[idx] = names.pop(idx) + " " + names[idx]
print(names)
打印:
['Peter Orson', 'Marc Johnson', 'Peter Johnson']
如果您不确定 "Peter"
是否在列表中,您可以先查看:
if "Peter" in names:
idx = names.index("Peter")
names[idx] = names.pop(idx) + " " + names[idx]