如何加入列表的某些部分:Python
我有一个字符串的示例列表:如何加入列表的某些部分:Python,python,python-3.x,list,string-concatenation,Python,Python 3.x,List,String Concatenation,我有一个字符串的示例列表: my_list = ['hello','this','is','a','sample','list', 'thanks', 'for', 'help'] 我想把每三个元素组合在一起,比如: new_list = ['hello this is', 'a sample list', 'thanks for help'] 只需分成几块并加入: [' '.join(my_list[i:i+3]) for i in range(0, len(my_list), 3)]
my_list = ['hello','this','is','a','sample','list', 'thanks', 'for', 'help']
我想把每三个元素组合在一起,比如:
new_list = ['hello this is', 'a sample list', 'thanks for help']
只需分成几块并加入:
[' '.join(my_list[i:i+3]) for i in range(0, len(my_list), 3)]
只需分成几块并加入:
[' '.join(my_list[i:i+3]) for i in range(0, len(my_list), 3)]
选项1:如果my_list
length不能被3整除,则此解决方案将删除元素
输入字符串:['hello'、'this'、'is'、'a'、'sample'、'list'、'Thank'、'for'、'help'、'foo']
[" ".join(i) for i in zip(*[iter(my_list)]*3)]
[" ".join(i) for i in zip_longest(*[iter(my_list)]*3, fillvalue='')]
结果:['hello this is'、'a sample list'、'谢谢帮助']
python iter技巧的工作原理:
选项2:使用zip\u最长的方式保留额外元素
输入字符串:['hello'、'this'、'is'、'a'、'sample'、'list'、'Thank'、'for'、'help'、'foo']
[" ".join(i) for i in zip(*[iter(my_list)]*3)]
[" ".join(i) for i in zip_longest(*[iter(my_list)]*3, fillvalue='')]
结果:['hello this is','a sample list','Thank for help','foo']
选项1:如果my_list
长度不能被3整除,则此解决方案将删除元素
输入字符串:['hello'、'this'、'is'、'a'、'sample'、'list'、'Thank'、'for'、'help'、'foo']
[" ".join(i) for i in zip(*[iter(my_list)]*3)]
[" ".join(i) for i in zip_longest(*[iter(my_list)]*3, fillvalue='')]
结果:['hello this is'、'a sample list'、'谢谢帮助']
python iter技巧的工作原理:
选项2:使用zip\u最长的方式保留额外元素
输入字符串:['hello'、'this'、'is'、'a'、'sample'、'list'、'Thank'、'for'、'help'、'foo']
[" ".join(i) for i in zip(*[iter(my_list)]*3)]
[" ".join(i) for i in zip_longest(*[iter(my_list)]*3, fillvalue='')]
结果:['hello this is','a sample list','Thank for help','foo']
您可以通过使用一个步骤(在本例中为3个步骤)进行迭代,并在每个步骤下添加单个字符串来解决此问题,即,我的列表[i]
,我的列表[i+1]
<代码>我的列表[i+2]
。请注意,您需要在每个第一个和第二个字符串后面添加一个空格。这段代码的作用是:
new_list = []
for i in range(0, len(my_list), 3):
if i + 2 < len(my_list):
new_list.append(my_list[i] + ' ' + my_list[i+1] + ' ' + my_list[i+2])
print(new_list)
您可以通过使用一个步骤(在本例中为3个步骤)进行迭代,并在每个步骤下添加单个字符串来解决此问题,即,my_list[i]
,my_list[i+1]
<代码>我的列表[i+2]
。请注意,您需要在每个第一个和第二个字符串后面添加一个空格。这段代码的作用是:
new_list = []
for i in range(0, len(my_list), 3):
if i + 2 < len(my_list):
new_list.append(my_list[i] + ' ' + my_list[i+1] + ' ' + my_list[i+2])
print(new_list)
有两种解决方案可以使用 使用: 使用和: 仅使用
zip\u最长的
:
[' '.join(g) for g in zip_longest(*[iter(my_list)] * 3, fillvalue='')]
最后两个是根据文档中的
成对
和分组
改编的。如果不是3个单词的倍数,则只有第一个选项不会在最后一组的末尾添加额外空格。可以使用两种解决方案
使用:
使用和:
仅使用zip\u最长的
:
[' '.join(g) for g in zip_longest(*[iter(my_list)] * 3, fillvalue='')]
最后两个是根据文档中的
成对
和分组
改编的。如果列表不是3个单词的倍数,则只有第一个选项不会在最后一组的末尾添加额外的空格。注意,如果列表的长度不能被3整除,则此方法将在末尾保留任何空格。这可能是个问题,也可能不是,但可能值得注意的是,如果列表的长度不能被3整除,这种方法将在最后省去任何东西。这可能是问题,也可能不是问题,但可能值得注意