在 Python 中加入特定的列表元素
How to join specific list elements in Python
在 Python 中加入特定的列表元素:
- 使用列表切片来选择列表中的特定元素。
- 使用该
str.join()
方法将元素连接成一个字符串。 - 用字符串替换列表元素。
主程序
my_list = ['ab', 'cd', 'ef', 'gh', 'ij'] my_list[1:3] = [''.join(my_list[1:3])] print(my_list) # 👉️ ['ab', 'cdef', 'gh', 'ij']
列表切片的语法是my_list[start:stop:step]
.
我们只提供了start
和的值stop
。
请注意,对于的值
start
是包含性的,而对于的值是排除性的。 stop
所以我们开始选择索引1
( cd
) 处的列表项,然后向上移动到但不包括索引3
( gh
) 处的列表项。
我们使用该str.join()
方法来连接元素的子集。
主程序
my_list = ['ab', 'cd', 'ef', 'gh', 'ij'] print(''.join(my_list[1:3])) # 👉️ 'cdef'
str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。
最后一步是用字符串替换相同的元素子集。
调用该
join()
方法的字符串用作元素之间的分隔符。我们没有在示例中提供分隔符,但您可以根据需要指定分隔符。如果您不想改变原始列表的内容,请使用该copy()
方法创建列表的浅表副本。
主程序
my_list = ['ab', 'cd', 'ef', 'gh', 'ij'] my_copy = my_list.copy() my_copy[1:3] = [''.join(my_copy[1:3])] # 👇️ copy list updated print(my_copy) # 👉️ ['ab', 'cdef', 'gh', 'ij'] # 👇️ original list remains unhanged print(my_list) # 👉️ ['ab', 'cd', 'ef', 'gh', 'ij']
该示例更改副本的内容并保持原始列表不变。
如果您不知道需要加入列表的值的索引,请使用该
list.index()
方法。
主程序
my_list = ['ab', 'cd', 'ef', 'gh', 'ij'] start = my_list.index('cd') stop = my_list.index('ef') + 1 my_list[start:stop] = [''.join(my_list[start:stop])] print(my_list) # 👉️ ['ab', 'cdef', 'gh', 'ij']
该list.index()
方法返回其值等于提供的参数的第一个项目的索引。
我们添加1
到字符串ef
的索引是因为stop
索引是独占的。
请注意,如果可迭代对象中有任何非字符串值,该
str.join()
方法将引发 a 。TypeError
如果您的列表包含数字或其他类型,请在调用之前将所有值转换为字符串join()
。
主程序
my_list = ['ab', 'cd', 123, 'gh', 'ij'] my_list[1:3] = [''.join(map(str, my_list[1:3]))] print(my_list) # 👉️ ['ab', 'cd123', 'gh', 'ij']
在将结果传递给方法之前,我们使用该map()
函数将所有列表项转换为字符串str.join()
。
map()函数将一个函数和一个可迭代对象作为参数,并使用可迭代对象的每个项目调用该函数。