有没有更短的编写逗号代码的方法?

时间:2019-07-17 05:59:37

标签: python list function comma

我正在研究Automate the boring stuff with Python第4章中的练习项目。
在逗号代码'practice projects'中,它要求您编写一个函数,该函数以列表值作为参数,并返回一个字符串,其中所有项目均以逗号和空格分隔,并在最后一项之前插入并插入。 / p>

有没有更短的编写代码的方法?

我已经定义了函数,并在for中使用了range(len(list))循环来遍历列表的索引。

然后我为列表命名,并添加了一些项目。

我通过调用列表完成了。

 def carpenter(Powertools):
  for i in range(len(Powertools)-1):
    print(Powertools[i] + ',', end='')
 ToolBox = ['hammer','chisel','wrench','measuring tape', 'screwdriver']
 carpenter(ToolBox)
 print(' and ' + ToolBox[-1])

输出显示了我想要的列表项目,最后一个项目插入了
但是我想知道,有没有更短的编写代码的方法?

3 个答案:

答案 0 :(得分:1)

您可以像这样在join内使用列表理解,并在最后一个项目后附加and

', '.join(x for x in ToolBox[:-1]) + ' and ' + ToolBox[-1]

可以将其设置为功能

def carpenter(power_tools):

    return ', '.join(x for x in power_tools[:-1]) + ' and ' + power_tools[-1]

tool_box = ['hammer','chisel','wrench','measuring tape', 'screwdriver']

joined = carpenter(tool_box)

print(joined) # hammer, chisel, wrench, measuring tape and screwdriver

请注意,我在PEP-8之后更改了变量名称。

此外,也无需理解,您可以为相同的结果执行类似的操作。

def carpenter(power_tools):

    return ', '.join(power_tools[:-1]) + ' and ' + power_tools[-1]

tool_box = ['hammer','chisel','wrench','measuring tape', 'screwdriver']

joined = carpenter(tool_box)

print(joined) # hammer, chisel, wrench, measuring tape and screwdriver

答案 1 :(得分:0)

使用 join()创建逗号分隔的列表和切片列表,直到倒数第二个元素,并使用字符串 .format()组合最后一个元素

def carpenter(Powertools):
  finalresult=",".join(Powertools[:-1])
  print('{} and {}'.format(finalresult,Powertools[-1]))


ToolBox = ['hammer','chisel','wrench','measuring tape', 'screwdriver']
carpenter(ToolBox)

结果:

hammer,chisel,wrench,measuring tape and screwdriver

答案 2 :(得分:0)

这应该有效:

def carpenter(powertools):
    return ','.join(powertools[:-1]) + ' and ' + powertools[-1]